9.Git将多个commit整理成一个
2020-11-25 本文已影响0人
就是耍帅
1.将多个连续的commit整理成一个
a.如下图所示,我将合并圈中的两个
b.合并commit可以使用rebase命令. git rebase -i [startpoint] [endpoint]
其中-i的意思是--interactive,即弹出交互式的界面让用户编辑完成合并操作,[startpoint] [endpoint]则指定了一个编辑区间,如果不指定[endpoint],则该区间的终点默认是当前分支HEAD所指向的commit(注:该区间指定的是一个前开后闭的区间)。
我们如果需要修改某一个commit,那么就必须指定他的父级commit
使用指令:git rebase -i b6d4039cdb3e0
上面未被注释的部分列出的是我们本次rebase操作包含的所有提交,下面注释部分是git为我们提供的命令说明。每一个commitId 前面的pick表示指令类型,git 为我们提供了以下几个指令:
c.这里选择基于最早的pick合并,将(pick e6175fb three)合并到最早的 (2177bda two update)中,
d.上面的保存退出之后,弹出下面的弹框,输入新的message,保存即可
e.最后查看git log
2.将间隔的几个commit整理成一个
a.如下图,我要将(4425c91da5c81 four)和 ( b6d4039cdb3e0 first) 进行合并
b.还是使用指令:git rebase -i b6d4039cdb3e0 ( 这里还是要指定他的父级commit,这里 ( b6d4039cdb3e0 first) 已经是最高级了,所以直接用的 ),出现如下图:
这时我们需要将( b6d4039cdb3e0 first)手动写进去,并且将(4425c91da5c81 four) 移动到和( b6d4039cdb3e0 first)一起,如下图:
保存退出之后,出现下图:
c.执行上面圈中的指令: git rebase --continue ,然后会弹出一个类似下面的弹框,进行修改保存即可