git autocrlf输入确实转换行结尾但从LF转换为CRLF?

时间:2011-06-22 08:43:02

标签: git version-control github

git config --global core.autocrlf input

根据this github help page这应配置git,以便在提交时将所有行结尾转换为LF。

然而,当我回到我的回购时,这就是我得到的输出。

> git commit -am "test commit"
warning: LF will be replaced by CRLF in .htaccess.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in .htaccess.
The file will have its original line endings in your working directory.
[release/4.2 27bad5b] test commit
warning: LF will be replaced by CRLF in .htaccess.
The file will have its original line endings in your working directory.
 1 files changed, 1 insertions(+), 1 deletions(-)

然后我检查了我的配置,看看是否正确设置了autocrlf选项,它是。

> git config -l | grep "crlf"
core.autocrlf=input

为什么git说它将我的LF转换为CRLF而不是我正在寻找的另一种方式?

为什么会抱怨3次?是因为它发现了3次被取代的事件?为什么在输出commithash之后会一次警告我?

我很困惑(在Mac上用于记录:))

1 个答案:

答案 0 :(得分:13)

经过很长一段时间处理行结尾后,我根本不允许任何工具,包括VCS在我身上改变它们。

我现在使用autocrlf falsecore.whitespace cr-at-eol。这摆脱了diff输出中令人讨厌的^ M.这只是一个突出的补充,git会向你展示一些令人毛骨悚然的东西,比如一行末尾或者一个标签之前的额外空格等。

希望你也可以做同样的事情并完成线条结束疯狂。