在git中,LF将被CRLF取代-这是什么,重要吗?

git initgit add .

对许多文件给出以下警告:

该文件将在您的工作目录中拥有其原始行结尾。警告:中的LF将被CRLF替换。

LF和CRLF有什么区别?我应该如何处理警告?

1784063 次浏览

在Unix系统中,一行的结尾用换行符(LF)表示。在windows中,一行用回车符(CR)和换行符(LF)表示,因此(CRLF)。当您从git获取从unix系统上传的代码时,它们将只有LF。

如果您是在Windows机器上工作的单个开发人员,并且您不关心git会自动将LF替换为CRLF,您可以通过在git命令行中键入以下内容来关闭此警告

git config core.autocrlf true

如果你想做出明智的决定,git应该如何处理这个问题,阅读留档

这是一个片段

格式和空白

格式和空白问题是一些更令人沮丧和许多开发人员在协作时遇到的微妙问题,特别是跨平台。对于补丁或其他合作引入微妙的空白变化,因为编辑默默地介绍它们,如果您的文件触及Windows系统,它们的行结尾可能会被替换。Git有一些配置选项来帮助解决这些问题。

core.autocrlf

如果您在Windows上编程并与不支持Windows的人一起工作(反之亦然),你可能会遇到一些行结束问题点。这是因为Windows同时使用回车字符以及文件中换行的换行字符,而Mac和Linux系统只使用换行字符令人难以置信的令人讨厌的跨平台工作事实;许多编辑在Windows静默地用CRLF替换现有的LF样式行结尾,或当用户按下回车键时,插入两个行尾字符。

Git可以通过自动将CRLF行结尾转换为LF来处理此问题您将文件添加到索引中,反之亦然,当它签出代码时到您的文件系统。您可以使用core.autocrlf设置。如果您在Windows机器上,请将其设置为true-当您签出代码时,这会将LF结尾转换为CRLF:

$ git config --global core.autocrlf true

如果您使用的是使用LF行结尾的Linux或Mac系统,则不希望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

如果需要,您可以在git core配置中停用此功能,使用

git config core.autocrlf false

但是,最好只是摆脱警告使用

git config core.autocrlf true