git多个commit合并成一个commit

描述

在使用git做版本管理器的时候,有时候需要将多个commit合并成一个commit,因此这里记录下具体的操作方法,便于查阅。

下面的例子,将msg B,msg C,msg D这3个commit合并成1个commit,具体步骤如下:

1、查看当前的提交信息

执行命令:git log,可以查看当前的一些提交信息,这些提交按照时间先后顺序为:msg A,msg B,msg C,msg D。

Git

2019-11-25_165510

2、合并多个commit

执行命令:git rebase -i commit_id,这里的commit_id是待合并的多个commit之前的那个commit ID,这里也就是msg A的commit ID。

在我这里也就是执行命令:git rebase -i d1089921b2714211d1b1652cf0864e2c3f7101a4,执行完命令后就进入到vi的编辑模式:

Git

2019-11-25_173903

Git

2019-11-25_174651

上图中,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:

Git

2019-11-25_180541

修改完成后,按esc键,冒号,输入wq进行保存。之后会继续跳转到commit message 的编辑界面:

Git

2019-11-25_180906

将上图中画线的内容删掉或者注释,然后写一个新的commit信息作为这3个commit的log信息,我这里的新的信息为:msg B, msg C, msg D,如下图所示:

Git

2019-11-25_181151

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

Git

2019-11-25_181335

Successfully表示操作成功。

3、查看新的commit信息

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

Git

2019-11-25_181700

从上图中,可以看到,我这里已经将msg B,msg C,msg D这3个commit合并成1个新的commit。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分