git rebase -i HEAD~6 合并多個提交

場景

場景:有時候我們修改一個 Bug 或者一段代碼的時候, commit 一次之后,發現 Bug 沒改對或者這段代碼需要再優化之類的,改完之后又 commit 了一次或多次,這樣就會感覺提交歷史不太美觀(有點強迫癥),這個時候我們就希望只想保留一次提交歷史記錄,合并為一個完整的提交,該怎么辦呢?git rebase 應運而生!

步驟

查看歷史,確定要合并的提交
git log

注意,不要合并了其他人的提交,不要合并了其他人的提交,不要合并了其他人的提交

合并命令

git rebase -i HEAD~6 或者 git rebase -i ***

*** 指的是你的某個提交

修改第 2~6 行的第一個單詞 picksquash or s,然后 輸入:wq or x 保存退出。

pick 的意思是要執行這個 commit
squash 的意識是這個 commit 會被合并到前一個 commit

中間可能會出現的情況
git 會壓縮提交歷史,若有沖突,需要進行修改,修改的時候保留最新的歷史記錄,修改完之后輸入以下命令:

git add .
git rebase --continue

若想退出放棄此次壓縮,執行命令:
git rebase --abort

若無沖突 or 沖突已 fix,則會出現一個 commit message 編輯頁面,修改 commit message ,然后 輸入:wq or x 保存退出。

同步到遠程 git 倉庫
輸入:git push -f or git push --force
查看遠程倉庫效果,多次 commit 已被合并成一次 commit。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Git飛行規則(Flight Rules) 前言 英文原版README 翻譯可能存在錯誤或不標準的地方,歡迎大家指...
    騎摩托馬斯閱讀 1,640評論 0 8
  • Git提交歷史的修改刪除合并等實踐(轉)今天主要針對在項目版本控制器Git的使用中遇到的一些和提交歷史操作相關的常...
    碼農朱同學閱讀 1,125評論 0 1
  • git 使用筆記 git原理: 文件(blob)對象,樹(tree)對象,提交(commit)對象 tree對象 ...
    神刀閱讀 3,794評論 0 10
  • Add & Commit git init 初始化一個 Git 倉庫(repository),即把當前所在目錄變成...
    冬絮閱讀 4,880評論 0 9
  • 昨天在同事電腦上操作了一把cherry-pick代碼,發現很多功能不用,就慢慢忘記了,梳理了下流程圖: git c...
    gogoingmonkey閱讀 683評論 0 0