場景
場景:有時候我們修改一個 Bug
或者一段代碼的時候, commit
一次之后,發現 Bug
沒改對或者這段代碼需要再優化之類的,改完之后又 commit
了一次或多次,這樣就會感覺提交歷史不太美觀(有點強迫癥),這個時候我們就希望只想保留一次提交歷史記錄,合并為一個完整的提交,該怎么辦呢?git rebase
應運而生!
步驟
查看歷史,確定要合并的提交
git log
注意,不要合并了其他人的提交,不要合并了其他人的提交,不要合并了其他人的提交
合并命令
git rebase -i HEAD~6
或者 git rebase -i ***
*** 指的是你的某個提交
修改第 2~6 行的第一個單詞 pick
為 squash
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。