GitKraken将\ ufeff添加到文件的开头

时间:2019-05-20 11:22:05

标签: git byte-order-mark gitkraken

当我将提交推送到Bitbucket并创建请求请求时,我可以在差异中看到weird symbol(\ ufeff)被添加到新创建文件的开头。

我不希望GitKraken添加任何其他符号,因此提交本来就是纯的。如何实现?

2 个答案:

答案 0 :(得分:2)

默认情况下,Visual Studio以UTF-16或UTF-8格式写入文件时,会将字节顺序标记(BOM,U + FEFF)写入文件的开头。使用UTF-16时需要使用此标记,但通常认为用UTF-8将其写入文件是个坏主意。

通常,字节顺序标记是零宽度的,所以您可能在GitKraken中而不是SourceTree中看到它的原因是因为GitKraken明确显示了它,而SourceTree却没有。

如果要在Visual Studio中将文件另存为UTF-8,则需要将其手动保存为“不带签名的UTF-8”。如果使用默认模式保存它们,则会使用BOM表保存它们。

或者,您可以在项目中添加.editorconfig file,将默认字符集设置为utf-8。这将指示Visual Studio不要在文件中写入BOM。如果您的项目不愿采用这样的文件,则可以自己创建一个文件并忽略它,方法是将.editorconfig添加到.git/info/exclude中它自己的行中。

答案 1 :(得分:0)

在最近的git上,将以下内容添加到.gitattributes应该可以解决您的问题:

 *.cpp text working-tree-encoding=UTF-8 eol=CRLF

cpp替换为所需的任何文件类型

注意:参见.gitattributes man page

  • 适用于您以及您所有同事的git(他们都应该支持)
  • 还要检查那里给出的iconv通话情况