0x00 場景
已經(jīng)提交到倉庫的代碼,但是想合并某幾次commit操作。
0x01 命令
命令格式:git rebase -i xxx
xxx代表從哪次commit開始合并,合并會列出xxx之前的commit,通過改變這些commit的狀態(tài)完成合并。
1、可以通過git log 查看commitId, 例如9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3
2、可以用HEAD表示。HEAD^的意思是最近一次commit,也可以寫成HEAD~1,HEAD~2則表示倒數(shù)第二個commit。
例如:
git rebase -i HEAD~2 表示合并當(dāng)前commit和上一個commit
git rebase -i 9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3
表示 合并9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3之前的commit(不包含此次commit)
0x02 場景
場景1: 合并剛剛提交的n個commit
1、執(zhí)行g(shù)it rebase -i HEAD~2,執(zhí)行后會進(jìn)入vim編輯器,編輯器中會出現(xiàn)兩次commit的信息。

image.png
2、合并
把要合并的commit全部改為s,wq保存退出。
3、修改合并后的comment
此時會彈出vim編輯器,是合并后的幾次commit信息,修改后wq保存退出。