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 表示合并當前commit和上一個commit
git rebase -i 9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3
表示 合并9e4509b70594f5f2847ad5a5894f6ca3fb1cf5d3之前的commit(不包含此次commit)
0x02 場景
場景1: 合并剛剛提交的n個commit
1购裙、執(zhí)行g(shù)it rebase -i HEAD~2培愁,執(zhí)行后會進入vim編輯器,編輯器中會出現(xiàn)兩次commit的信息缓窜。
2、合并
把要合并的commit全部改為s谍咆,wq保存退出禾锤。
3、修改合并后的comment
此時會彈出vim編輯器摹察,是合并后的幾次commit信息恩掷,修改后wq保存退出。