git合并多次commit提交
首先查看历史记录
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