【问题标题】:git config core.autocrlf is true, but I'm still getting a warning?git config core.autocrlf 是真的,但我仍然收到警告?
【发布时间】:2017-10-28 15:55:35
【问题描述】:

我了解 Windows 使用 CRLF,并且在提交之前让 Git 将行尾更改为 LF 并在签出时返回为 CRLF 是一种很好的做法。出于这个原因,我将core.autocrlf 设置为true。但是,与其他线程所说的相反(例如,this),我仍然收到此警告:

警告:LF 将被 [FILE_NAME] 中的 CRLF 替换。 该文件将在您的工作目录中以原始行结尾。

首先,我认为将 core.autocrlf 设置为 true 应该可以阻止这些警告。其次,Git 不应该在提交时将 LF 转换为 CRLF,而不是相反?

有趣的是,我刚刚提交了许多文件,但只收到了其中两个(一个 .csproj 和一个 .cs)的警告。

附:我在 Windows 上使用 Git Bash。

【问题讨论】:

  • Customizing Git — Git Configuration 和紧跟在core.autocrlf 部分之后的core.whitespace 部分是否提供任何见解或帮助?您如何检查您的 core.autocrlf 设置是否正确?
  • 我跑了git config core.autocrlf,它打印了true

标签: git git-bash line-endings core.autocrlf


【解决方案1】:

在提交之前让 Git 将行尾更改为 LF 并在签出时返回为 CRLF 是一种很好的做法。

是,但 不是 core.autocrlf。
您应该始终将 core.autocrlf 设置为 false,因为它会尝试为 所有 文件(包括非文本文件)转换 eol(行尾)

如果您有需要转换的文件,请使用eol directive in a .gitattributes file
确保使用latest Git for Windows:有一个bug in Git 2.10

话虽如此,如果您仍想使用core.autocrlf,请参阅“Make Git “LF will be replaced by CRLF” warnings go away”:您可以删除索引并再次结帐。

【讨论】:

  • 仍然,为什么在添加索引时将 LF 替换为 CRLF?我认为它应该是相反的。
  • @Farshid 不确定:我知道stackoverflow.com/a/14039909/6309。你使用的是什么 Git 版本?最后一个2.13? (github.com/git-for-windows/git/releases) 你正在执行什么命令来触发该警告消息?
  • @Farshid 你的仓库中是否有任何 .gitattributes,如 github.com/git/git/commit/… 中所见?如果一个 eol 指令将强制 eol 为 LF,这将解释该消息。
  • 我在 .gitattributes 中有 * text=auto
  • 我使用的是 2.11.1。我需要更新它。命令是git add,或git commit -a,它本身运行add
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-30
  • 1970-01-01
  • 1970-01-01
  • 2012-02-22
  • 2021-01-02
  • 2015-04-18
  • 2016-10-20
相关资源
最近更新 更多