2011-05-31 89 views
5

我在一個分支中有多個提交。當我推動這些提交代碼審查時,我們的代碼審查工具爲每次提交創建一個審查。如何將多個提交合併爲一個而不丟失歷史記錄

爲了避免這種情況,我想合併多個提交到一個提交。同時我不想失去承諾的歷史。是否可以創建一個僅用於審閱的新分支,並將我的主分支中的所有提交合併到我的審閱分支中的單個提交中?我該怎麼做呢?

回答

5

不想做到這一點。從你如何進行提交的角度來看,實際歷史是毫無價值的。合適大小的審查塊很有趣,所以只需rebase -i您的工作分支將提交結合到可管理的大小和最重要的邏輯塊,發佈它們以審查和忘記原始歷史記錄。

這就是說,在提交合並,您可以使用:

git merge --squash 

的Git不會扔掉的歷史。它實際上在rebase中也沒有這樣做,但在這種情況下,歷史版本的前一版本只能通過「reflog」訪問,並且只有在reflog(IIRC默認爲90天)期滿時,纔會最終變爲不可訪問和git gc將扔掉它。但使用壁球時,原始分支仍然存在,您仍然可以從reflog命名修訂。

然而,審查歷史將通過審查工具合併到中央主文件中,而且沒有人會看到您的原始歷史記錄。你可以保留它,但它不會與官方的相關,無論如何,沒有人會看到它。

相關問題