Git Merge没有标记冲突文本文件中的所有差异

时间:2016-06-07 16:33:28

标签: git merge conflict

我正在测试GIT分支合并和冲突解决方案以及对简单文本文件的更改。

我已签出名为issue1的分支,对 File_A 进行了更新并提交了更改。

我已检出master,对 File_A 进行了多次更新并提交了更改

当我尝试git merge issue1时,我得到了预期的

Auto-merging /File_A
CONFLICT (content): Merge conflict in /File_A
Automatic merge failed; fix conflicts and then commit the result.

然而,当我打开文件时,冲突标记只会突出显示它找到的第一个差异而不是其他任何差异。

<<<<<<< HEAD
<?xml version="1.0" encoding="utf-7" ?>
=======
<?xml version="1.0" encoding="utf-8"?>
>>>>>>> issue1

是否有可能以这种方式轻松突出所有差异,或者我将不得不使用不同的方法来解决冲突?

2 个答案:

答案 0 :(得分:1)

以下是我使用的一些常用命令。

快速了解概述

git diff -- shortstat master issue1 

概述每个文件的差异

git diff --stat master issue1

突出显示文件的两次提交之间的差异(而不是冲突)。这将强制输出到终端。请参阅“git help config&#39; diff.external部分使用外部差异编辑器。

git diff --no-ext-diff master issue1 -- File_A

如果要合并的文件包含更改但在文件的不同部分,则它们不会显示为冲突。合并(结果)文件将带来两个更改。只有当两个文件都想要改变相同的行时才会发生冲突。

答案 1 :(得分:0)

我应该在发布问题之前阅读,这是直接从git merge帮助文件中获取的,该文件显示了为什么文件的所有区域都没有突出显示差异

如何提出冲突 在合并期间,将更新工作树文件以反映合并的结果。 在对共同祖先版本所做的更改中,非重叠版本(即,您更改了文件的某个区域,而另一侧保留该区域完整,反之亦然)将被逐字汇入最终结果。然而,当双方对同一区域进行更改时,Git不能随意选择一方而是另一方,并要求您通过将双方所做的事情留在该区域来解决它。