小红解决合并冲突
rebase
操作过程是把本地提交一次一个地迁移到更新了的中央仓库master
分支之上。 这意味着可能要解决在迁移某个提交时出现的合并冲突,而不是解决包含了所有提交的大型合并时所出现的冲突。 这样的方式让你尽可能保持每个提交的聚焦和项目历史的整洁。反过来,简化了哪里引入Bug
的分析,如果有必要,回滚修改也可以做到对项目影响最小。
如果小红和小明的功能是不相关的,不大可能在rebase
过程中有冲突。如果有,Git
在合并有冲突的提交处暂停rebase
过程,输出下面的信息并带上相关的指令:
CONFLICT (content): Merge conflict in <some-file>
Git
很赞的一点是,任何人可以解决他自己的冲突。在这个例子中,小红可以简单的运行git status
命令来查看哪里有问题。 冲突文件列在Unmerged paths
未合并路径)一节中:
# Unmerged paths:
# (use "git reset HEAD <some-file>..." to unstage)
# (use "git add/rm <some-file>..." as appropriate to mark resolution)
#
# both modified: <some-file>
接着小红编辑这些文件。修改完成后,用老套路暂存这些文件,并让git rebase
完成剩下的事:
git add <some-file>
git rebase --continue
要做的就这些了。Git
会继续一个一个地合并后面的提交,如其它的提交有冲突就重复这个过程。
如果你碰到了冲突,但发现搞不定,不要惊慌。只要执行下面这条命令,就可以回到你执行git pull --rebase
命令前的样子:
git rebase --abort