
实践
对于下述提交记录,这里期望将最新的4次commit记录合并为一个

使用git rebase命令的i选项启动交互式变基,选定包含HEAD(当前分支最新提交)在内的4次最新的提交。这将打开一个vim编辑器。其会列出相应的commit,同时每个commit前都有一个命令(默认为pick)
git rebase -i HEAD~4
如果要将最新的4次commit记录合并为一个的话,我们需要将除了第一行commit外的所有commits命令从pick改为 s 或 squash。修改完commist前的命令后,保存并关闭vim编辑器

此时git会再次打开vim编辑器,提示编辑新的commit信息。具体地,对于不需要的commit信息在最前面添加#注释符号,同时添加新的注释信息。最后保存并关闭vim编辑器

现在,git会进行变基过程。如果变基过程中没有遇到冲突,就可以成功将多个commit压缩合并成一个新的commit了

现在,就可以将合并的结果push到远程了
git push origin <远程分支名> --force
但为了防止远程分支上已经存在其他人提交的代码,推荐使用 –force-with-lease 选项进行push
git push origin <远程分支名> --force-with-lease
补充说明下,在修改commits命令时。还可以选择将第一行commit外的所有commits命令从pick改为 f 或 fixup。这样变基后会直接将第一行commit的提交信息作为压缩后新commit的信息,无需再次编辑指定
原文始发于微信公众号(青灯抽丝):Git (八):压缩commit提交记录
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/225731.html