Git 合並多次 commit 、 刪除某次 commit


Git 合並多次 commit

 

有時候在一個分支的多次意義相近的 commit,會把整個提交歷史搞得很混亂,此時可以將一部分的 commit 合並為一個 commit,以美化整個 commit 歷史,可以使用 rebase 的方法來合並多次 commit,主要步驟如下:

1. git log 查看當前的提交歷史

比如需要將以下 3 個 ”請假應用客戶端代碼優化“ 的 commit 合並為一個 commit; 

 

 

2. git rebase 進行 git 壓縮

執行 git rebase -i HEAD~4 對最近的 4 個 commit 進行 rebase 操作;

 

 

 

 

具體的操作下面的 Commands 說明得很清楚了,對於 commit 合並可以使用 squash、fixup 指令,區別是 squash 會將該 commit 的注釋添加到上一個 commit 注釋中,fixup 是放棄當前 commit 的注釋;

 

 

 

 

 

 

 

編輯后保存退出,git 會自動壓縮提交歷史,如果有沖突,記得解決沖突后,使用 git rebase --continue 重新回到當前的 git 壓縮過程;

 

 

 

 

3. 推送到遠程倉庫 git push -f

重新查看提交提交歷史,會發現這些 commit 已經合並了,整個提交歷史簡潔了很多:

 

 

 

 

 

刪除某次 commit 

 

同樣的,利用 git 壓縮 rebase 指令來刪除某個 commit,過程和以上是類似的;

在 git log 下,假如我們需要刪除“請假應用客戶端代碼優化”這個 commit:

 

 

 

 

 

 

可以通過 git rebase -i HEAD~1 (對最近1次 commit 進行 rebase) 或 git rebase -i 9fbf10(對 commit id 前幾位為 9fbf10 的 commit 之后的 commit 進行 rebase);

 

 

 

 將需要刪除的 commit 設置操作指令 drop ,保存退出即可;

 

 

 

 在執行 git log 時,可以發現該條 commit 已經從提交歷史中刪除了;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM