首先查看歷史記錄
git log
查看你想要合并的commit是哪些(注意:這里是逆序,最上的是最新提交)?
?找到當前想要合并的最后一個記錄,復制該記錄的下一個記錄的 id(黃色部分commit id),含義就是選取該id上面的所有commit記錄(不包含該id的記錄)
按 q 退出記錄(log)查看
開始rebase?
git rebase -i 1304a3905913b612bd4116c43a4144432882d66c
進入vim編輯器,輸入?i?進入編輯,修改pick字段(變為順序,底下是最新提交記錄),將你要合并的記錄的 pick 修改為 squash 或者 s (注意:第一個pick不能修改),如果你還想改commit,可以對應的去改
?編輯好后按 Esc 退出編輯,然后按 :wq 進行保存
如果有沖突需要手動去修改,修改好了后
git add .
然后繼續rebase
git rebase --continue
(如果不想rebase了,或者想重頭再來,可以輸入取消)
git rebase --abort
?
接下來會進入另一個vim編輯器,同樣按 i 進入編輯,把不要的commit在前面加 # 注釋掉
完成后按 Esc 再按 :wq 保存
?
?rebase完成之后,強制推送(注意:這里最好是自己的分支或者用其他非重要分支測試一下, 一定要強制推送,不然不生效)
git push -f origin xxx