我在Windows7上工作,为了防止下线问题,我有一个.gitattributes文件,设置如下(如github help中所述):

* text=auto

*.js text

但是现在,当我提交一个只有js行结尾的LF-文件时,我会收到警告:
warning: LF will be replaced by CRLF in XXX.js.
The file will have its original line endings in your working directory.

好吧,这听起来像我的存储库中有CRLF和工作目录中的LF,尽管它应该是(我希望是)完全相反的方式。提交后,js-文件的行尾仍为LF
我是错误地阅读了警告还是以错误的方式设置了.gitattributes
谢谢!
p.s.我的全局git配置有autocrlf = true,但在提交时不应影响eol转换,因为.gitattributes文件
p.p.sjs文件位于子目录中

最佳答案

您应该禁用autocrlf–它不会导致这种“情况”,但它确实与gittattributes设置冲突,并且没有添加任何好处。
你的回购协议中的下线转换没有任何问题。您引用的消息告诉您,如果您再次签出此文件(使用这些设置),您的工作目录中将包含crlf。但现在它将留在lf。
如果您想知道回购协议中的行尾信息,请运行以下命令:

git show commit:path/to/file | file -k -

如果你想摆脱这个消息,设置你的编辑器,以保存文件与crlf。或者更好:如果您的所有工具都支持lf endings,请将此repo设置为在签出时使用lf(如果您意外地用crlf保存了一个文件,它仍将正常化):
git config core.eol lf

注意:这可能只有当您将core.autocrlf设置为false时才起作用。

08-26 17:54