可能重复:
git用CRLF替换LF
当我创建一个新的rails应用程序时,我在git中看到有关LF替换的警告.我做git init git add.
然后热潮!我看到几乎所有文件都弹出.我通常只是继续构建我的应用程序,它在文件的许多更改后消失了.
例:
该文件将在您的工作目录中具有其原始行结尾.警告:LF将被Gemfile中的CRLF替换.
该文件将在您的工作目录中具有其原始行结尾.警告:LF将被Gemfile.lock中的CRLF替换.
该文件将在您的工作目录中具有其原始行结尾.警告:LF将由README中的CRLF替换.
LF和CRLF有什么区别?
从长远来看,我是否应该关注这一点,或者只是忽略它并像往常一样继续前进?
使用bash在Windows XP计算机上运行git.我从SVN导出了我的项目,然后克隆了一个裸存储库.
然后我将导出粘贴到裸存储库目录中,并执行了:
git add -A
Run Code Online (Sandbox Code Playgroud)
然后我得到一条消息列表:
LF将由CRLF取代
这种转变的后果是什么?这是Visual Studio中的.NET解决方案.
我在Windows上工作,但也可以在Unix上工作,所以我不需要存储Windows行结尾.我只想抑制警告.
我发现了这些相关的Stack Overflow问题:
git关闭"LF将被CRLF替换"警告
git,空白错误,静噪和autocrlf,最终的答案
我试过:
git config core.whitespace cr-at-eol false
git config core.whitespace cr-at-eol true
git config core.whitespace cr-at-eol nowarn
但这些似乎没有做任何事情.有谁知道如何关闭警告?
谢谢.
在与使用不同操作系统的人一起工作时,由于行结束,我遇到了合并冲突问题。我在 Windows 上工作,我的同事在 Mac 上工作。当他推送他的更改时,有时他没有处理过的文件会在 diff 中显示为已更改,因为现在^M每个文件上都会显示行尾。这导致了合并冲突。我在 Git 文档中阅读了以下内容:
当您将文件添加到索引时,Git 可以通过将 CRLF 行结尾自动转换为 LF 来处理此问题,反之亦然,当它检出代码到您的文件系统时。您可以使用 core.autocrlf 设置打开此功能。如果您使用的是 Windows 计算机,请将其设置为 true?—?这会在您检出代码时将 LF 结尾转换为 CRLF:
$ git config --global core.autocrlf true 如果你在使用 LF 行尾的 Linux 或 macOS 系统上,那么你不希望 Git 在检出文件时自动转换它们;但是,如果意外引入了带有 CRLF 结尾的文件,那么您可能需要 Git 修复它。您可以通过将 core.autocrlf 设置为输入来告诉 Git 在提交时将 CRLF 转换为 LF,而不是相反:
$ git config --global core.autocrlf input 这个设置应该让你在 Windows 结账中使用 CRLF 结尾,但在 macOS 和 Linux 系统以及存储库中使用 LF 结尾。
这是有道理的,但我仍然不清楚这些文件是如何在 repo 中实际提交的。例如,如果他在他的系统上创建一个文件,它会有所有的LF行结尾,对吗?因此,当他提交时,我认为这些行结尾保持原样。据我所知,当我拉动时,我的autocrlf存在true会用CRLF行尾检查它们。(我收到警告warning: …