Git使用rebase合併多個commit
阿新 • • 發佈:2019-02-07
首先假設我們有3個 commit
我們需要將 2dfbc7e8
和 c4e858b5
合併成一個 commit,那麼我們輸入如下命令:
其中,-i
的引數是不需要合併的 commit 的 hash 值(也就是我們要rebase到的commit物件),這裡指的是第一條 commit, 接著我們就進入到
vi
的編輯模式:
可以看到其中分為兩個部分,上方未註釋的部分是填寫要執行的指令,而下方註釋的部分則是指令的提示說明。指令部分中由前方的命令名稱、commit hash 和 commit message 組成。
當前我們只要知道 pick
和 squash
這兩個命令即可。
pick
的意思是要會執行這個 commitsquash
的意思是這個 commit 會被合併到前一個commit
我們將 c4e858b5
這個 commit 前方的命令改成 squash
或 s
,然後輸入:wq
以儲存並退出
這是我們會看到 commit message 的編輯介面
其中, 非註釋部分就是兩次的 commit message, 你要做的就是將這兩個修改成新的 commit message。
輸入wq
儲存並推出, 再次輸入git log
檢視 commit 歷史資訊,你會發現這兩個 commit 已經合併了。
注意事項:如果這個過程中有操作錯誤,可以使用 git rebase --abort
來撤銷修改,回到沒有開始操作合併之前的狀態。