理解警告“LF 将被 CRLF 替换”

Ste*_*hen 5 git line-endings

我已经阅读了这个答案中讨论的 Git 文档(LF 将被 git 中的 CRLF 取代 - 那是什么,它很重要吗?)但我不明白这对我的情况意味着什么。

我有 LF 文件,这些文件是由工具引入到我在 Windows 上的 git checkout 中的。当我尝试提交它们时,我收到了警告warning: LF will be replaced by CRLF in [file]

git config core.autocrlf在这台机器上是真的。反正我答应了。Windows 上的行尾仍然是 LF。然后我在git config core.autocrlf似乎没有设置的 Linux 机器上检查了该文件。我检查了那里的行尾,它们也是 LF。

所以我不明白的是,哪里说LF将被CRLF取代?这是否意味着,下次我对文件进行更改(由另一台机器上的某人提交)时,行尾将被转换?

另外 - Git 在其内部存储库中使用什么行结尾?

Mar*_*ger 13

我猜你会说 git 内部更喜欢 LF。说它“在内部使用 LF”不太准确,因为您可以将其配置为不这样做。(例如,如果您团队中的每个人都使用 Windows,因此您都关闭 eol 标准化,那么 git 将具有 CRLF eol 标记。)

警告的意思是,您在启用换行规范化的情况下检查此内容,但它已经具有 LF。如果您在 autocrlf 有效的情况下重新检查它,您将得到 CRLF 结尾。但由于您的工作树中有一个本地副本,因此它将保持原样。

因此,“where”通常是使用 autocrlf=true 的任何新存储库;或任何同事的存储库(如果从 git 签出并在本地为他们创建文件)