2.3 处理合并分支文件内容的冲突

2019-06-10  本文已影响0人  黄刚刚

先模拟一个冲突出来

[root@localhost hgg]# git branch dev

[root@localhost hgg]# git branch dev2

[root@localhost hgg]# git branch

  dev

  dev2

* master

步骤解释:创建了dev和dev2分支

[root@localhost hgg]# git checkout dev

切换到分支 'dev'

[root@localhost hgg]# vi a.php

[root@localhost hgg]# git add .

[root@localhost hgg]# git commit -m "dev分支修改a.php"

[root@localhost hgg]# cat a.php

dev

步骤解释:切换到dev分支修改a.php并提交

[root@localhost hgg]# git checkout dev2

切换到分支 'dev2'

[root@localhost hgg]# vi a.php

[root@localhost hgg]# git add .

[root@localhost hgg]# git commit -m "dev2分支修改a.php"

[root@localhost hgg]# cat a.php

dev2

步骤解释:切换到dev2分支修改a.php并提交

到这里,dev和dev2分支同时修改a.php文件,在不同分支中的修改与提交肯定没问题,下面把这两个分支都合并到"master"时才会有冲突出现

[root@localhost hgg]# git checkout master

切换到分支 'master'

[root@localhost hgg]# git merge dev

[root@localhost hgg]# git merge dev2

自动合并 a.php

冲突(内容):合并冲突于 a.php

自动合并失败,修正冲突然后提交修正的结果。

步骤解释:切换到master分支,合并dev分支,再合并dev2分支,这时就出现了文件内容的冲突了

[root@localhost hgg]# cat a.php

<<<<<<< HEAD

dev

=======

dev2

>>>>>>> dev

[root@localhost hgg]# vi a.php

步骤解释:查看内容冲突的文件,

"<<<<<<< HEAD"表示当前分支的内容,

"======= "是分割符 , 

">>>>>>> dev"表示的是与合并的分支有冲突的内容 ,

所以就需要手动修改冲突的文件,手动修改代码选择要保留的代码,

[root@localhost hgg]# cat a.php

dev

dev2

步骤解释:打印出来看看本次例子修改后的文件内容

[root@localhost hgg]# git add .

[root@localhost hgg]# git commit -m "合并了dev分支与dev2分支"

步骤解释:在解决了文件内容的冲突后提交"master"分支中的更改,OK,文件内容的冲突解决了

上一篇 下一篇

猜你喜欢

热点阅读