git rebase -i HEAD~3合並多個提交為一個提交


場景:新功能在本地的dev_feat分支開發過程中,提交了多次,生成了多個commit id,開發測試完成后將新功能合並到dev分支上,但是不想要這些提交記錄,那么可以將多個commitid合並成一個,再merge或者push到dev分支上。

比如git log 看到以下三個提交:

 

前面說過 commit 是為了防止意外丟失代碼,但是在推到遠端之前,最好把一次開發的 commit 合並成一個,避免污染遠端的 git commit message

前面說過 commit 是為了防止意外丟失代碼,但是在推到遠端之前,最好把一次開發的 commit 合並成一個,避免污染遠端的 git commit message

因為這個例子中有3個 commit,所以執行 git rebase -i HEAD~3

然后就會看到一個 vim 界面 (不熟悉 vim 基礎操作的讀者請自行查閱搜索)

 

 記住不要動最上面的那行,把下面幾行開頭的 pick 換成 s , 然后保存

這時會顯示另一個 vim 界面

 

 

 刪除所有內容( #開頭的可以忽略),然后寫一句簡短、准確的句子作為這次開發的 commit message,如

 

 

然后保存

如果成功了就能看見這么一些文字

 

 

最后使用 git logl 確認所有這次開發中的 commit message 都被壓縮成了一個

(這邊只介紹了 git rebase的最簡單直接的用法,有興趣的讀者可以去閱讀官方文檔,了解更詳細、高級的用法,如第一次vim界面里使用 f 替代 s 有時候更方便)

 

參考:

血淚教訓之請不要再輕視Git —— 我在工作中是如何使用 Git 的 - 知乎 (zhihu.com)


免責聲明!

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



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