2014-07-14 103 views
2

使用交互式rebase時,我不明白將提交修復到上一個​​提交,並簡單地從列表中刪除所有其他提交之間的區別。修復和刪除Git Rebase中的提交之間的差異

據我所知,由於git提交爲每次提交拍攝整個存儲庫的快照,fixup沒有完成任何其他操作,而是創建我必須解決的合併衝突。

從我創建並運行測試命令的測試存儲庫中,使用fixup獲得相同的結果,並完全刪除那些提交併僅使用最後一個提交。修正的目的是什麼?

+1

壁球與fixup基本相同,除了壁球讓我們編輯提交信息。 –

+0

「* ...修正不會完成任何事情,除了創建必須解決的合併衝突之外。」修復不會創建合併衝突,除非您以某種方式重新排序快照,否則衝突基本上已在每個快照中解決,你只是將快照結合在一起。 –

+0

每當我使用fixup時,我不得不回去修復每次提交時感覺到的合併衝突。我認爲這與我之前合併的衝突有關,但我不知道如何。 – Brandon

回答

0

如果你已經在代碼的相同部分提交了兩個提交(第二個是對前一個提交代碼的錯誤修復),只保留第二個提交將不起作用,因爲第二個提交不會找到需要應用修改的基本代碼。

爲了保持兩個修改只有一個提交,第二個提交需要修正(合併)到第一個。

源(法語):git merge and rebase

希望這個回答會幫助你。