适用于Windows用户的Git CRLF

时间:2012-07-18 03:50:15

标签: windows git gitattributes core.autocrlf

我知道有很多关于这个问题的文章。但我几周来一直在努力,没有成功。

我正在尝试使用github中描述的最佳做法。所以我添加了一个.gitattributes文件,例如它看起来像这样:

*.cs text

我已经为所有文件标准化了行结尾。现在我有干净的工作副本,没有任何提交。但是现在如果我在任何Windows文本编辑器中打开罚款并进行随机更改,保存文件,撤消该更改我将此文件视为已更改。我知道这是因为文件现在有窗口样式行结尾。但这是一种可怕的工作方式,文件没有变化,我希望git在没有git reset --hard的情况下知道它。在这种情况下你会推荐什么?

2 个答案:

答案 0 :(得分:4)

如果您不希望将文件的eol样式更改回Windows,请不要让git执行任何“自动”转换。
所以,与“best practices from GitHub”相反:

git config --global core.autocrlf true

如果你真的(我的意思是真的)需要一个特定目录中的一组特定文件来获得特定的eol样式,请将其添加到所述目录中的.gitattributes file中,意思是< strong>不使用text=auto ,只有“text eol=lf or crlf

答案 1 :(得分:2)

这里真正的问题是:你在做什么,和谁一起工作?

除非您正在进行OSS工作,否则所有这些属性混淆都是不值得的。对于拥有一组人员的组织,请通过设置:

关闭自动行结束转换
core.autocrlf false

这涵盖了大多数情况。

如果您有一个GitHub上的子模块,您可以按每个回购设置这些子模块。