3

我知道有很多关于这个问题的文章。但我为此苦苦挣扎了几个星期,但没有成功。

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

*.cs text

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

4

2 回答 2

5

如果您不想将文件的 eol 样式改回 windows,请不要让 git 执行任何“自动”转换。
因此,与“来自 GitHub 的最佳实践”相反:

git config --global core.autocrlf true

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

于 2012-07-18T06:04:17.843 回答
2

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

除非你在做 OSS 工作,否则所有这些属性混淆是不值得的。对于有一群人的组织,通过设置关闭自动换行结束转换:

core.autocrlf false

这涵盖了大多数情况。

如果你在 GitHub 上有一个子模块,你可以在每个 repo 的基础上进行设置。

于 2012-07-18T07:40:48.767 回答