解决冲突
发布者:admin 发表于:438天前 阅读数:658 评论:0

结论

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交。

查看分支合并图:

git log --graph

冲突的产生一般都是这两种情况:

远程仓库的代码落后于本地仓库远程仓库的代码远超本地仓库 在你还未提交代码的时候,你的同事已经提交了代码,就会导致远程仓库代码领先于你的代码

说明

冲突是如何表示的

当产生合并冲突时,该部分会以<<<<<<<, =======>>>>>>>表示。在=======之前的部分是当前分支这边的情况,在=======之后的部分是传入分支的情况。

如何解决冲突

在看到冲突以后,你可以选择以下两种方式:

决定不合并。这时,唯一要做的就是重置indexHEAD节点。git merge --abort用于这种情况。

解决冲突。Git会标记冲突的地方,解决完冲突的地方后使用git add加入到index中,然后使用git commit产生合并节点。

你可以用以下工具来解决冲突:

使用合并工具。git mergetool将会调用一个可视化的合并工具来处理冲突合并。

查看差异。git diff将会显示三路差异(三路合并中所采用的三路比较算法)。

查看每个分支的差异。git log --merge -p 将会显示HEAD版本和MERGE_HEAD版本的差异。

查看合并前的版本。git show :1:文件名显示共同祖先的版本,git show :2:文件名显示当前分支的HEAD版本,git show :3:文件名显示对方分支的MERGE_HEAD版本。