git里如何将多次commit合并为一次?

使用 git rebase -i 命令就可以将从最后一次提交往前的多次提交合并为一次。

使用举例:
当前我的提交记录如下,一共有3次提交,下面就把这3次提交合并为一次:


待处理的状态

输入以下命令:

git rebase -i HEAD~3

之后会弹出现目的编辑窗口:

这是一个vim编辑的文本,需要使用vim命令进行编辑。

  • 首先,输入i命令,进入编辑模式。
  • 我们需要关注的是最上面几行以pick开头的信息。需要把除了第一行外的pick改成s。
  • 然后按esc键退出输入模式,输入:(英文冒号)进入底线命令模式
  • 再输入wq 即保存后退出
pick or s

之后会展示如下界面,进行提交注释处理。

我们把除了一个条之外的注释都删除掉,删除后的效果如下:

最后的注释

之后同样地保存退出即可。

这样就结束了,再用git log 查看下提交记录,发现已经变为一条记录了。要注意这条记录是三次中最早的那一次,它显示的提交时间和第一次的时间一致。但是它却也是一条新的提交记录,可以注意到它的提交记录号已经和之前的三次都不一样了。

注意,如果当前分支之前已经推送到远程了,需要使用git push -f 才能将rebase后的分支推送到远程。

大家有什么疑问和自己的见解欢迎在评论区提出,非常希望能和大家有更多的交流。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容