git merge (冲突版)
1 | mkdir mergeDemo |
以上命令执行完之后,会遇到冲突。首先,通过vim打开冲突的文件,在这里是1.c,修改完冲突之后,wq保存退出;
接着,运行如下命令,完成后续操作
1 | git add 1.c |
git rebase (冲突版)
1 | mkdir rebaseDemo |
以上命令执行完之后,会遇到冲突。首先,通过vim打开冲突的文件,在这里是1.c,修改完冲突之后,wq保存退出;
接着,运行如下命令,完成后续操作
1 | git add 1.c |
git rebase -i
1 | mkdir rebase-i-demo |
执行完以上命令之后,我们模拟出了这样一个场景:在test分支上对1.c文件修改了5次。
第二次修改有误,本想修改为222,却误将其修改为了2x2,因此,对第二次修改需要更正(edit);
第三次修改和第四次修改希望想融合为一次提交log,但是内容都保留,因此,对第四次修改需要融合(squash);
第五次修改的提交log有误,本想提交为”test 修改了 1.c 555”,却误输入为”test 修改了 1.c 5xx”,因此,对第五次修改需要更新log(reword)
基于以上分析,假设这五次提交的commit号分别为 1abcdef
2abcdef
3abcdef
4abcdef
5abcdef
,那需要进行如下操作
- 执行命令
git rebase -i master test
编辑以上命令执行完之后的文件为如下内容
1
2
3
4
5p 1abcdef
e 2abcdef
p 3abcdef
s 4abcdef
r 5abcdef编辑完之后,wq保存退出,后续步骤根据
git status
的提醒,类似git rebase的操作继续操作即可在
git rebase -i master test
命令的后续操作都完成之后,在执行如下两条命令即可1
2git co master
git merge test