【问题标题】:git add throws warning "CRLF will be replaced by LF in <file-name>"git add 抛出警告“CRLF 将被替换为 <file-name> 中的 LF”
【发布时间】:2019-04-16 21:02:44
【问题描述】:

我最近开始从事 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

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

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

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

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

【问题讨论】:

    标签: git git-add core.autocrlf


    【解决方案1】:

    我仍然会推荐:

    git config core.autocrlf false
    git add --renormalize .
    git commit -m "Do not touch eol"
    

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

    【讨论】:

    • 您能详细说明一下吗?如果您在 Mac 上工作而其他人在 Windows 上工作,为什么不改变呢?等等?谢谢
    • @cd491415 因为 Mac 和 Windows 都可以在 \n eol 中处理相同的文件(不需要 \r\n)所以不需要 Git 去碰任何东西。
    • 根据点击文档git-scm.com/book/en/v2/Customizing-Git-Git-Configuration,您不应该在跨平台团队中使用 false
    • @cd491415 那个文档很旧,现在不准确,甚至已经过时了。它甚至没有提到 core.safecrlf (git-scm.com/docs/git-config#git-config-coresafecrlf)。正如我过去 8 年一直在说的(stackoverflow.com/a/2016763/6309stackoverflow.com/a/2825829/6309),应该通过 .gitattributes core.eol 指令管理 eol,而不是通过修改所有内容的包罗万象的 core.autocrlf。
    • @cd491415 我没有在您的问题中看到您的编辑,但您引用的是过时的文档。
    猜你喜欢
    • 2010-12-08
    • 2022-11-10
    • 2021-08-07
    • 1970-01-01
    • 2014-09-05
    • 2011-09-23
    • 2011-12-15
    • 2016-10-01
    • 1970-01-01
    相关资源
    最近更新 更多