LF将被git中的CRLF取代 - 这是什么,它是否重要?

时间:2011-04-29 15:28:11

标签: git

  

可能重复:
  git replacing LF with CRLF

当我创建一个新的rails应用程序时,我在git中看到一个关于LF替换的警告。我做     git init     git add。

再繁荣!我看到几乎所有文件都弹出。我通常只是继续构建我的应用程序,它在文件的许多更改后消失了。

示例:

  

该文件的工作目录中将包含其原始行结尾。   警告:LF将被Gemfile中的CRLF替换。

     

该文件的工作目录中将包含其原始行结尾。   警告:LF将被Gemfile.lock中的CRLF替换。

     

该文件的工作目录中将包含其原始行结尾。   警告:LF将在README中被CRLF取代。

LF和CRLF有什么区别?

从长远来看,我是否应该关注这一点,或者只是忽视它并像往常一样继续前进?

2 个答案:

答案 0 :(得分:1301)

在Unix系统中,行的结尾用换行符(LF)表示。在窗口中,一行用回车(CR)和换行(LF)表示(CRLF)。当你从unix系统上传的git中获取代码时,他们只会有一个LF。

如果要关闭此警告,请在git命令行中输入

git config core.autocrlf true

如果你想做出明智的决定git应该如何处理这个问题,read the documentation

这是一个片段

  

格式化和空白

     

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

core.autocrlf
     

如果您在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转换为   通过设置core.autocrlf来提交LF,但不是相反   输入:

$ git config --global core.autocrlf input
     

此设置应该在Windows结帐时为您提供CRLF结尾,   但是在Mac和Linux系统以及存储库中的LF结尾。

     

如果您是Windows程序员,只执行Windows项目,那么您   可以关闭此功能,在中记录回车   通过将配置值设置为false来存储库:

$ git config --global core.autocrlf false

答案 1 :(得分:330)

如果需要,可以使用

在git核心配置中停用此功能
git config core.autocrlf false

但最好只使用

删除警告
git config core.autocrlf true