先模拟一个冲突出来
[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,文件内容的冲突解决了
网友评论