在Windows上使用Git,如何确保存储库中的规范化行结尾以及工作目录中没有转换?

时间:2014-02-08 22:06:30

标签: git

在Windows上使用Git,我想确保存储库中的标准化行结尾并且工作目录中没有转换?

我们现在使用带有* text=auto的.gitattributes文件来确保Git存储库已规范化。使用.gitattributes文件时,存储库中的所有文本文件都存储为LF。那样就好。问题是当它们被写到工作目录时,即使我们没有core.autocrlf=true,它也会将行结尾更改为core.eol。使用.gitattributes时,它应该具有与写入工作目录时不使用.gitattributes相同的行为。它应该仅在core.autocrlf=true时更改行结尾。我会提交一个错误。标记为红色是我认为应该改变的行为。

enter image description here

在我的用例中,我构建的是构建服务器,包括TeamCity和Visual Studio Online,并且无法设置core.autocrlf=input。我将使用开源F#编译器作为示例。该项目使用* text=auto,但未在.gitattributes中指定*.fs text eol=lf。如果从GitHub存储库下载il.fs,则行结尾为LF。当它们由构建服务器签出时,它们是CRLF。这意味着校验和不匹配,使用SourceLink的源索引不起作用。

作为一种解决方法,我建议我们在.gitattributes文件中设置*.fs text eol=lf。不是每个人都对此感到满意。

此外,有1500个声望点的人可以将此标记为“sourcelink”。

1 个答案:

答案 0 :(得分:0)

通过命令提示符

更新全局设置

https://help.github.com/articles/dealing-with-line-endings