2016-01-30 65 views
4

有我想要的東西。我希望它存在,如果不存在,我可能會創建它。我會描述它,如果你知道這樣的事情,請讓我知道。如果沒有,並且您有關於如何創建它的任何指示,我也會很感激。Git:自動備份創建時的所有提交

我一直在爲我的項目使用Git多年,但是現在我纔開始在一家大公司工作,這是一個大約100名開發人員承諾的回購協議。當我單獨工作並且在小團隊中工作時,我已經習慣了隨時進行大量提交,將所有文件分開,並使用空的提交消息(是的,這就是我滾動的方式)。我基本上使用提交作爲提交一個擴展的保存操作;每當我輸入一個不重要的代碼量時,我將它全部提交併推送到非主分支。

既然我在一家大公司工作,我不能這樣做,因爲這會讓其他人感到討厭。所以我仍然做頻繁的,沒有記錄的提交,但是當我完成時,我通過重新綁定來壓縮所有這些提交,給他們提供一個很好的提示信息,併發送一個合併請求。我的所有臨時提交將在下一次垃圾收集運行時被刪除。

我不喜歡我所有的臨時提交被刪除。他們可能很醜,但我愛他們。有時候他們有一些我編寫並刪除的代碼,我不想丟失那些代碼。也許我將來需要它。

現在,我可以把所有這些提交放在一個私人分支。但創建和維護這樣一組分支將是一件麻煩事。因爲這意味着每個功能分支現在都需要另一個輔助分支,這個輔助分支將永遠保持打開狀態並且未被合併。呸。

我要的是保存提交任何Git中做出,並確保它會停留在可預見的將來訪問的系統。這對我來說很重要,它會自動執行,而不需要採取任何措施。我想知道我可以回到我所做的任何承諾,即使它在壁球中迷路了。

是否有這樣的事情存在?任何指向創建它?

+2

只需將reflog設置爲永不過期?請參閱'git config --help' –

回答

1

一個可能的想法是設置一個post-commit hook這將推動每個創建的提交專用回購。

該推送將使用當前分支,或者如果由於非快速前進推送(分支已被重新設置/重寫)而推送到「current_branch_1」(_2,_3 ...) ),以保持舊的歷史記錄不變。

通過這種方式,您可以以正常方式繼續使用當前的回購(通過rebase/reset可以在清除reflog後最終失去提交)。
但是,創建的每個提交在該「歸檔」倉庫中仍然可見。

+0

乾淨利落的想法。 – David