当我创建一个新的rails应用程序时,我在git中看到一个关于LF替换的警告。我做 git init git add。
再繁荣!我看到几乎所有文件都弹出。我通常只是继续构建我的应用程序,它在文件的许多更改后消失了。
示例:
该文件的工作目录中将包含其原始行结尾。 警告:LF将被Gemfile中的CRLF替换。
该文件的工作目录中将包含其原始行结尾。 警告:LF将被Gemfile.lock中的CRLF替换。
该文件的工作目录中将包含其原始行结尾。 警告:LF将在README中被CRLF取代。
LF和CRLF有什么区别?
从长远来看,我是否应该关注这一点,或者只是忽视它并像往常一样继续前进?
答案 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