如何在git中使用merge=union自动合并后查看冲突

如何在git中使用merge=union自动合并后查看冲突,git,merge,conflict,gitattributes,Git,Merge,Conflict,Gitattributes,我在.gittributes中有*.csproj merge=union,我很高兴git是如何管理合并的。不过,在其他情况下,git在合并xml文件方面做得很差,例如*.csproj(因为我听说缺少合适的xml合并驱动程序),我无法再加载VS project 所以我git reset--hard HEAD^并使用git merge--no commit--no ff再试一次,这样我就可以在提交合并之前潜入peak 例如: mkdir foobar && cd foobar git

我在
.gittributes
中有
*.csproj merge=union
,我很高兴git是如何管理合并的。不过,在其他情况下,git在合并xml文件方面做得很差,例如
*.csproj
(因为我听说缺少合适的xml合并驱动程序),我无法再加载VS project

所以我
git reset--hard HEAD^
并使用
git merge--no commit--no ff
再试一次,这样我就可以在提交合并之前潜入peak

例如:

mkdir foobar && cd foobar
git init
echo "README merge=union" > .gitattributes
echo "Hello" > README
git add --all
git commit -m 'Initial commit.'
git checkout -b italian-translation
echo "Ciao" > README
git commit -am 'Italian translation'
git checkout master
git merge --no-commit --no-ff italian-translation
此时,
README
包含:

Hello
Ciao
然后我尝试查看自述文件的冲突版本,以便深入了解冲突并手动解决:

git checkout -m README
我期待类似的事情:

<<<
Hello
===
Ciao
>>>
请问我这里缺什么

谢谢。

通过指定“merge=union”,两个版本的文件合并成功,没有冲突,“successful”合并提交给master

在某些情况下,这是合适的,但是,正如您所经历的,XML不是其中之一。对于XML文件,您最好使用默认的合并算法,该算法将遇到冲突,并使用“
Hello
Ciao