我正在测试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
是否有可能以这种方式轻松突出所有差异,或者我将不得不使用不同的方法来解决冲突?
答案 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不能随意选择一方而是另一方,并要求您通过将双方所做的事情留在该区域来解决它。