合并冲突-出现奇怪的字符

时间:2018-09-12 10:18:16

标签: asp.net git git-merge

我正在研究一个ASP.Net MVC5项目,并使用vimdiff作为我的合并工具。

我在.csproj上遇到合并冲突。这不是意外的,因为文件一直都添加到不同的分支中,但是似乎合并过程正在添加一些垃圾数据?

这是本地,基本和远程上csproj的状态:

Branch statuses

这是明显的合并冲突:

Extra characters at start of file

就git而言,整个文件现在是一个冲突...

<<<<<< HEAD
WHOLE CS PROJ FILE WITH CHARACTERS AT START
======
WHOLE CS PROJ FILE WITHOUT CHARACTERS AT START
>>>>>> develop

这显然使执行适当的合并变得困难。

尝试合并之前,我无法在任一分支中看到这些字符。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

这是UTF-8 BOM,表示文件编码为UTF-8。它仅在文件的开头被识别,并且由于在文件之前插入了<<<<<< HEAD,因此它不再位于文件的开头,并且已被无法检测/不再检测的工具可见将文件检测为UTF-8。

确保用于修改文件的所有工具都同意BOM是否存在。如果他们都同意,那就永远不会造成冲突。如果有人添加不存在的BOM,而有人删除不存在的BOM,则冲突是不可避免的。

答案 1 :(得分:0)

您只需删除源中看不到的行。 git add文件并进行提交,因此您解决了冲突。