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

LF将被CRLF取代

这种转变的后果是什么?


当前回答

其他答案对于一般概念来说是非常棒的。我遇到了一个问题,在更新警告后,仍然发生在现有的存储库,在以前的设置中提交。

加上——renoralize有帮助,例如:

Git添加——重新规范化。

从文档中可以看到:

将“清洁”进程新应用于所有跟踪文件,以强制执行 将它们再次添加到索引中。这在更改后很有用 核心。自专制配置或文本属性,以纠正 添加了错误的CRLF/LF行结束符的文件。这个选项意味着-u。”

其他回答

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

git config --global core.autocrlf input

您应该使用

git rm --cached -r .

并重写Git索引

git reset --hard

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


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

其他答案对于一般概念来说是非常棒的。我遇到了一个问题,在更新警告后,仍然发生在现有的存储库,在以前的设置中提交。

加上——renoralize有帮助,例如:

Git添加——重新规范化。

从文档中可以看到:

将“清洁”进程新应用于所有跟踪文件,以强制执行 将它们再次添加到索引中。这在更改后很有用 核心。自专制配置或文本属性,以纠正 添加了错误的CRLF/LF行结束符的文件。这个选项意味着-u。”

Windows中的大多数工具也接受文本文件中的简单LF。例如,你可以在一个名为'的文件中控制Visual Studio的行为。Editorconfig '使用以下示例内容(部分):

 indent_style = space
 indent_size = 2
 end_of_line = lf    <<====
 charset = utf-8

只有原来的Windows记事本不能使用LF,但有一些更合适的简单编辑器工具可用!

因此你也应该在Windows的文本文件中使用LF。这是我的信息,强烈推荐!没有任何理由在窗口中使用CRLF !

(同样的讨论是在C/ c++中使用\ in include路径。这是牛的粪便。使用#include <pathTo/myheader.h> +斜杠!它是C/++标准,所有微软编译器都支持它)。

因此Git的正确设置是:

git config core.autocrlf false

我想说的是:忘记dos2unix和unix2dos这类思维陈旧的程序吧。在您的团队中阐明LF适合在Windows下使用。

我也有同样的问题,做git添加。&& git重置恢复所有行结束正确。

确保您已经安装了最新版本的Git

我在之前的回答中,git配置核心。在使用Git(2.7.1版)时,自专制错误,但它不工作。

然后,当升级git(从2.7.1到2.20.1)时,它就可以工作了。