在一次执行 git add 的时候出现了一个奇怪的警告。
warning: LF will be replaced by CRLF
查阅发现是linux和win之间的差异导致的。在Unix系统中,行的末尾用行提要(LF)表示。在Windows中,用回车(CR)和线路馈送(LF)来表示线条(CRLF)。当您从从Unix系统上传的git获得代码时,它们只会有一个LF。
如果是win10下解决方法就是执行:
$ git config --global core.autocrlf false
以下来自stackoverflow的一篇回答
如果您正在Windows上编程,并且与其他人一起工作(反之亦然),您可能会在某一时刻遇到行结束问题。这是因为Windows对其文件中的新行使用回车字符和行提要字符,而Mac和Linux系统只使用linefeed字符。这是一个微妙但令人难以置信的跨平台工作的事实;Windows上的许多编辑器默默地用crlf替换现有的LF样式行尾,或者在用户点击Enter键时插入两个行尾字符。
当您将文件添加到索引中时,GIT可以通过将CRLF行尾自动转换为LF来处理这个问题,反之亦然,当它将代码签出到您的文件系统时。可以使用core.autocrlf设置打开此功能。如果您在Windows机器上,将其设置为true–这将在签出代码时将LF结尾转换为CRLF:
$ git config --global core.autocrlf true
如果您所在的Linux或Mac系统使用LF行结束,那么您不希望Git在签出文件时自动转换它们;但是,如果有CRLF结束的文件意外地被引入,那么您可能希望Git修复它。您可以告诉Git在提交时将CRLF转换为LF,但通过将core.autocrlf设置为输入而不是相反的方式:
$ git config --global core.autocrlf input
此设置应该让您在Windows签出中保留CRLF结束,但在Mac和Linux系统以及存储库中使用LF结束。
如果您是一个只执行Windows项目的Windows程序员,那么您可以关闭此功能,通过将配置值设置为false来记录存储库中的回车情况:
$ git config --global core.autocrlf false