git add 抛出警告“CRLF 将被 <file-name> 中的 LF 替换”

cd4*_*415 8 git git-add core.autocrlf

我最近开始从事 Xamarin 跨平台开发。虽然我团队中的一些开发人员使用 Mac 进行开发(使用 Visual Studio for Mac),但其他人使用 Windows(使用 Visual Studio 2017)。我们使用 git/github 作为我们的代码存储库/版本控制系统。

在我做了一些更改并添加了一些新文件后,我发布git add .了所有更改,但我收到了这样的警告

warning: CRLF will be replaced by LF in <file-name>.
The file will have its original line endings in your working directory
Run Code Online (Sandbox Code Playgroud)

我检查了我的 git 配置core.autocrlf=input,根据我的理解和这里的文档https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration,这是 Mac 的正确设置。

但是,我不确定上面的警告,因为我以前从未见过它。我发现它更令人困惑,因为并非我添加的所有文件都显示此警告,而仅显示一些。

我已经阅读了很多关于这个问题的帖子,但没有一个接缝可以清楚地解释这些警告是否可以或不能被忽略。或者是否需要修复它们以及如何为像我的团队一样使用 Windows 和 MacOS 的团队修复它们。

我是否需要担心这个警告,对于像我这样在 Windows 和 MacOS 机器上工作的团队来说,这究竟意味着什么?

Von*_*onC 8

我仍然会推荐:

git config core.autocrlf false
git add --renormalize .
git commit -m "Do not touch eol"
Run Code Online (Sandbox Code Playgroud)

如果可以,请避免 Git 对 eol 进行任何更改,并使用尊重正在编辑的文件的 eol 的编辑器。

  • @cd491415 该文档很旧,现在不准确,甚至已经过时。它甚至没有提到 core.safecrlf (https://git-scm.com/docs/git-config#git-config-coresafecrlf)。正如我在过去 8 年里一直说的(/sf/answers/141173441/,/sf/answers/197808061/),eol 应该通过 .gitattributes core.eol 指令进行管理,而不是包罗万象的 core.autocrlf,它可以修改一切。 (2认同)