版权声明:本文为博主原创文章,转载请注明出处 https://blog.csdn.net/HughGilbert/article/details/70577109
本节内容整理自分支
创建与合并
- Step one:首先假设你正在一个Git项目上工作,并且有了一些提交,如下图所示。
- 现在假设有一个问题#53,需要在不运行原项目的基础上进行修改,此时就要创建分支。
#命令简写
#git checkout -b issue53
git branch issue53
git checkout issue53
如图所示,创建了新的分支
Step two:在分支 issue53中修改问题,并作了新的提交C3
注意,此时HEAD指针指向了issue53
Step three:此时接到电话,原来的版本有一个紧急问题需要修改,不想把它与#53问题混淆在一起,将HEAD切换到master分支,并由master分支衍生出新的分支
- 需要注意的是在切换到master分支的时候,应该确保此时的staging area中的文件被处理完毕
git checkout master
git checkout -b hotfix
- Step four:在hotfix分支中修改了问题并做了提交之后,将分支hotfix与master进行合并
- 此时紧急问题已经被解决,切换到分支issue53继续解决刚才被打断的问题,切换到分支issue53之前应该先删除hotfix分支,因为紧急问题已经被解决了
- 切换到分支issue53之后,修改问题,并做了新的提交
git branch -d hot fix
git checkout issue53
- 此时将分支issue53与分支master进行合并
- 所有问题都解决之后,删除其它分支,只保留master分支
Git分支合并时的两种情况
第一种情况:如何合并的两个分支中,有一个分支时另一个分支的前继,则作为前继的那个分支会直接移动到另外一个分支,Git将其称为“fast forward”
——————————————————————————————
第二种情况:合并的两个分支具有共同的父节点,其合并就是将内容不同的地方进行合并
合并时候的冲突
- 当在第二种情况合并两个分支,并且两个分支对于同一个文件的同一部分做了修改的时候,会出现合并冲突。此时 Git 做了合并,但是没有自动地创建一个新的合并提交。 Git 会暂停下来,等待你去解决合并产生的冲突。 你可以在合并冲突后的任意时刻使用 git status 命令来查看那些因包含合并冲突而处于未合并(unmerged)状态的文件