1、查看提交记录 git log --oneline
2、开始合并 git rebase -i commitId
commitId指你不需要合并的commit的哈希值,即此次你需要合并的commit之前的一个commit ,此处以b9570e9d8示例 git rebase -i b9570e9d8,合并dfc84c9e5和3bad8685f两个commit,执行完命令行进入 vi 编辑模式。
3、键盘敲i键进入insert模式
s(squash)指合并这个commit至前一个commit即pick指向的commit,此处示例dfc84c9e5、3bad8685f两个commit合为一个,所以dfc84c9e5前面的pick保持不变作为基线,而3bad8685f前面的pick改成s或squash。
4、按esc、:、wq保存
第三步修改完成后,按esc键、冒号、输入wq保存修改,之后会跳转到commit message编辑页。
5、 继续i键进入insert模式
注释中有每个commit的信息,i键进入输入模式,编辑你合并commit的信息,可自由编辑更改,此处我以第一个commit信息作为合并信息。
6、 esc:wq保存生效
第五步编辑完成,继续esc:wq保存提交,合并成功会跳到最初命令行界面。
7、查看合并commit信息 git log --oneline
稳妥起见查看核对合并后commit的提交信息。
8、强制push到远程 git push -f
最后一步,确认无误后需要强制推合并commit到远程才算真正生效,若当前分支不是个人维护分支,注意确保强制push不会覆盖别人代码。
注:如果手残误操作,只要没走最后一步,可执行git rebase --abort放弃本次合并操作,回到最初状态。