当前位置:   article > 正文

Git多个commit合并成一个【中间提交合并 尾部提交合并】

多个commit合并

尾部提交合并

将msg B,msg C,msg D这3个commit合并成1个commit

1 查看当前的提交信息

执行命令:git log,可以查看当前的一些提交信息 msg A,msg B,msg C,msg D。

2 合并多个commit

  1. git rebase -i [startpoint] [endpoint]
  2. 其中-i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操作,
  3. [startpoint] [endpoint]则指定了一个编辑区间,
  4. 如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit
  5. (注:该区间指定的是一个前开后闭的区间)。

git rebase -i commit_id1 commit_id 

这里的commit_id是待合并的多个commit之前的那个commit ID,这里也就是msg A的commit ID。

在我这里也就是执行命令:git rebase -i d1089921b2714211d1b1652cf0864e2c3f7101a4,

执行完命令后就进入到vi的编辑模式:

 

 上图中,pick表示使用当前的commit,squash表示这个commit会被合并到前一个commit。

我们这里需要将msg C,msg D合并到msg B中,因为msg B是最靠近msg A的,因此这里选择将msg C,msg D合并到msg B中。

在键盘上敲i键进入insert模式,然后将msg C,msg D前面的pick修改成squash:

修改完成后,按esc键,冒号,输入wq进行保存。

之后会继续跳转到commit message 的编辑界面:

将上图中画线的内容删掉或者注释,然后写一个新的commit信息作为这3个commit的log信息,

我这里的新的信息为:msg B, msg C, msg D,如下图所示:

然后保存退出,就会跳转到最初的命令界面:

 Successfully表示操作成功。

3、查看新的commit信息

执行命令:git log,查看当前的commit信息:成功合成了

 中间提交合并

和尾部的类似,就是不想合并的commit前面写pick即可!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/399488
推荐阅读
相关标签
  

闽ICP备14008679号