Git自动将文件从CRLF转换为LF无法正常工作。

7
在我们的系统中,我们过去可以在将文件提交到git时将所有的CRLF转换为LF。但现在这个功能已经消失了。
以下是我所做的事情:
git config --global core.autocrlf false

在上述操作完成之后,我使用以下命令进行检查:

git config --list

结果是:
... 
core.autocrlf=input
...
core.autocrlf=false
...

很令人困惑。虽然有两条core.autocrlf的记录,但第一条是core.autocrlf=input?如果我使用以下命令取消设置core.autocrlf
git config --global --unset core.autocrlf

当我列出git config时,我仍然会得到一个条目:

core.autocrlf=input

第二步: 在我执行了git config --global core.autocrlf false之后,我将* text=auto添加到.gitattributes文件中。 但是git仍然不会自动为我转换换行符。
1个回答

13

自从git1.8.1rc1版本以来:

"git config --get"曾经用于诊断同一配置文件中相同变量的多个定义,但现在它应用了内部配置逻辑使用的“后者胜出”规则。

因此,您的第二个设置将被应用。

有关core.autoctrlf选项的更多说明:

如果您正在Windows机器上,请将其设置为true-这会在您检出代码时将LF结尾转换为CRLF:

$ git config --global core.autocrlf true

您可以通过设置core.autocrlf为input,告诉Git在提交时将CRLF转换为LF,但不能反过来转换:

$ git config --global core.autocrlf input

如果您是一个做Windows专属项目的Windows程序员,那么您可以关闭这个功能,并通过将配置值设置为false在代码库中记录回车符:

$ git config --global core.autocrlf false

更多解释: http://git-scm.com/book/zh/v2/Git-配置-Git-属性#格式化与空白


1
问题在于 core.autocrlf=false,一旦我设置为 core.autocrlf=input,它就可以工作了。非常感谢!!! - Xiaoyun Wu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接