在一台Windows机器上,我使用git add添加了一些文件。 我收到警告说:

LF将被CRLF取代

这种转变的后果是什么?


当前回答

我认为Basiloungas的答案很接近,但已经过时了(至少在Mac上)。

打开~/。并将safecrlf设置为false:

[core]
       autocrlf = input
       safecrlf = false

*显然会使它忽略行char的结尾(它对我来说是有效的)。

其他回答

如果您已经签出了代码,那么文件就已经建立了索引。在更改Git设置后,运行以下命令:

git config --global core.autocrlf input

您应该使用

git rm --cached -r .

并重写Git索引

git reset --hard

注意:这将删除您的本地更改。在你这么做之前考虑把它们藏起来。


来源:配置Git处理行结束符

我认为Basiloungas的答案很接近,但已经过时了(至少在Mac上)。

打开~/。并将safecrlf设置为false:

[core]
       autocrlf = input
       safecrlf = false

*显然会使它忽略行char的结尾(它对我来说是有效的)。

它应该是:

警告:(如果你检出/或克隆到另一个文件夹与你当前的核心。如果为true,)LF将被CRLF所取代 该文件将在您的(当前)工作目录中有其原始的行结束符。

这张图可以解释它的意思。

许多文本编辑器允许您更改为LF。请参阅下面的Atom指令。它简单明了。


点击右下角的CRLF:

在顶部的下拉菜单中选择LF:

Git有三种模式来处理行结束符:

# This command will print "true" or "false" or "input"
git config core.autocrlf

您可以通过向上面的命令行添加一个额外的true或false参数来设置要使用的模式。

If core.autocrlf is set to true, that means that any time you add a file to the Git repository that Git thinks is a text file, it will turn all CRLF line endings to just LF before it stores it in the commit. Whenever you git checkout something, all text files automatically will have their LF line endings converted to CRLF endings. This allows development of a project across platforms that use different line-ending styles without commits being very noisy, because each editor changes the line ending style as the line ending style is always consistently LF.

The side effect of this convenient conversion, and this is what the warning you're seeing is about, is that if a text file you authored originally had LF endings instead of CRLF, it will be stored with LF as usual, but when checked out later it will have CRLF endings. For normal text files this is usually just fine. The warning is a "for your information" in this case, but in case Git incorrectly assesses a binary file to be a text file, it is an important warning, because Git would then be corrupting your binary file.

如果核心。将selflf设置为false,则不会执行任何行结束转换,因此文本文件将按原样检入。这通常是可行的,只要你所有的开发人员都在Linux或Windows上。但根据我的经验,我仍然倾向于得到带有混合行结束符的文本文件,最终导致问题。

作为一名Windows开发人员,我个人倾向于让这个设置打开。

请参阅git-config以获得包含“input”值的更新信息。