操作步骤
首先用git log命令查看历史提交记录,示例git仓信息如下:
1 | git log --pretty=oneline |
比如这里希望合并本地的前三条记录(f70c, 56a7, 64db),需找到待合并记录(64db)的前一条记录的commitID(7837),作为git rebase -i命令的参数。
输入git rebase -i 7837, 进入历史提交的编辑界面:
需要注意的是,上图显示的提交顺序与git log是相反的。将除了第一行的pick都改成squash, 保存退出(:wq),再将commit信息改成merge three commit, 保存退出,再次使用git log查看:
1 | git log --pretty=oneline |
发现f70c, 56a7, 64db三条本地记录已经被成功合并为一条新记录。
注意事项
只对从未推送至公共仓库的提交记录执行git rebase
原因可参考https://www.progit.cn/ “Git分支 -> 变基的风险”,该小节详细讲述了在一个公共仓库执行变基操作的问题。