我正在研究一个ASP.Net MVC5项目,并使用vimdiff作为我的合并工具。
我在.csproj上遇到合并冲突。这不是意外的,因为文件一直都添加到不同的分支中,但是似乎合并过程正在添加一些垃圾数据?
这是本地,基本和远程上csproj的状态:
这是明显的合并冲突:
就git而言,整个文件现在是一个冲突...
<<<<<< HEAD
WHOLE CS PROJ FILE WITH CHARACTERS AT START
======
WHOLE CS PROJ FILE WITHOUT CHARACTERS AT START
>>>>>> develop
这显然使执行适当的合并变得困难。
尝试合并之前,我无法在任一分支中看到这些字符。
有什么想法吗?
答案 0 :(得分:3)
这是UTF-8 BOM,表示文件编码为UTF-8。它仅在文件的开头被识别,并且由于在文件之前插入了<<<<<< HEAD
,因此它不再位于文件的开头,并且已被无法检测/不再检测的工具可见将文件检测为UTF-8。
确保用于修改文件的所有工具都同意BOM是否存在。如果他们都同意,那就永远不会造成冲突。如果有人添加不存在的BOM,而有人删除不存在的BOM,则冲突是不可避免的。
答案 1 :(得分:0)
您只需删除源中看不到的行。 git add
文件并进行提交,因此您解决了冲突。