Visual Studio git 克隆文件总是使用 LF

Visual Studio git clone always use LF for a file

我们在这里使用 TFS 2013(版本 12.0.30324.0),我们使用 Visual Studio 2013。我们有一个包含许多 TXT 文件的项目,用于批量插入。

使用 Visual Studio 进行克隆时,其中一些文件总是以 LF 行结尾而不是通常的 CRLF 进行克隆。这打破了我们对 eol 非常挑剔的 BULK INSERT。

设置.gitattributes没有帮助

设置git config --global core.autocrlf true没有帮助

它总是 return 以 LF 终止。该问题似乎与文件中某些字符的存在有关。当它们不存在时,Visual Studio 通常设置 CRLF,但是当它们存在时,无论我有什么配置,它都会设置 LF。

重现方法如下:

  1. 创建一个test.txt文件,内容如下Associação de países da África, Caribe e Pacífico,结尾有一个CRLF字符
  2. gid 添加、提交并将其推送到 TFS
  3. 从磁盘中删除项目
  4. git 克隆项目
  5. test.txt 现在有一个 LF 结尾而不是原来的 CRLF

无论如何,这总是return一个带LF的文件。

带有 CLI 的 MSYSGIT 运行正常,它克隆了具有常规 CRLF 结尾的文件,问题似乎出在 Visual Studio 2013 git 客户端上。我可以报告说 Visual Studio 2015 年也发生了同样的情况。

会是什么?我真的不知道我能做些什么来解决这个问题,我相信这可能是 Visual Studio.

中使用的 git 客户端的错误

这是二进制检测中的一个错误,我们在其中错误地确定具有一些非 ASCII UTF-8 字符的文件是二进制文件。这个错误是 fixed in libgit2,它是我们在 Visual Studio 中 Git 支持的基础。这应该在即将推出的 VS 2013 Update 5 和 Visual Studio 2015 中修复。

由于我们将文件检测为二进制文件,强制行尾为特定类型将不起作用。 (那些只适用于文本文件。)

不幸的是,这意味着没有已知的解决方法。 对于给您带来的不便,我们深表歉意。