合并冲突-出现奇怪的字符
Merge conflict -strange characters appearing
我正在开发一个 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
这显然使得执行适当的合并有点困难。
在尝试合并之前,我在任一分支中都看不到这些字符。
有什么想法吗?
这是一个UTF-8 BOM,表示文件编码为UTF-8。它只在文件的开头被识别,并且由于在它之前插入了 <<<<<< HEAD
,它不再在文件的开头,并且已经通过不检测/不再的工具可见将文件检测为 UTF-8。
确保您用于修改文件的所有工具都同意 BOM 是否应该存在。如果他们都同意,那么就永远不会引起冲突。如果有些人在 BOM 不存在时添加,而其他人在 BOM 存在时删除,冲突是不可避免的。
您只需删除在源代码中看不到的行。 git add
文件并提交,因此您解决了冲突。
我正在开发一个 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
这显然使得执行适当的合并有点困难。
在尝试合并之前,我在任一分支中都看不到这些字符。
有什么想法吗?
这是一个UTF-8 BOM,表示文件编码为UTF-8。它只在文件的开头被识别,并且由于在它之前插入了 <<<<<< HEAD
,它不再在文件的开头,并且已经通过不检测/不再的工具可见将文件检测为 UTF-8。
确保您用于修改文件的所有工具都同意 BOM 是否应该存在。如果他们都同意,那么就永远不会引起冲突。如果有些人在 BOM 不存在时添加,而其他人在 BOM 存在时删除,冲突是不可避免的。
您只需删除在源代码中看不到的行。 git add
文件并提交,因此您解决了冲突。