赞
踩
将msg B,msg C,msg D这3个commit合并成1个commit
1 查看当前的提交信息
执行命令:git log,可以查看当前的一些提交信息 msg A,msg B,msg C,msg D。
2 合并多个commit
- git rebase -i [startpoint] [endpoint]
- 其中-i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操作,
- [startpoint] [endpoint]则指定了一个编辑区间,
- 如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit
- (注:该区间指定的是一个前开后闭的区间)。
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即可!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。