LF 将在 git 中被 CRLF 替换 - 文件将具有其原始行结尾

LF will be replaced by CRLF in git -the file will have its original line endings

LF 将在 git 中被 CRLF 替换 - 文件将具有其原始行结尾,这是什么意思?

这通常发生在您处于 Windows 并且 core.autocrlf 设置为 true,或者 .git 属性包含执行行结束规范化的指令时。

行结束规范化的工作方式(在 Windows 机器上)是当您提交文件时,git 将每个 CRLF 替换为 LF,而当您签出文件时,git 用 CRLF 替换每个 LF。通常这对您来说都是透明的,您所看到的只是工作目录中的 CRLF。但是,如果您以某种方式在工作目录中创建了一个只有 LF 的文件,将会发生以下情况:

  1. 提交时,git 将 "convert" LF 到 LF,即什么都不做
  2. 签出时,git 会将 LF 转换为 CRLF

结果是,您最终创建了一个只有 LF 的文件,但从那时起您总是在其中看到 CRLF。这就是 git 警告您的内容。

假设我们正在谈论的是一个文本文件,您可以继续忽略此警告。但是,如果它是二进制文件,则意味着 git 将尝试对其进行行规范化,这将损坏文件。在这种情况下,您需要检查您的 .gitattributes 文件并查看为什么会发生这种情况。

在 Unix 系统中,行尾用换行符 (LF) 表示。在 windows 中,一行用回车符 return (CR) 和换行符 (LF) 表示 (CRLF)。当您从 git 获取从 unix 系统上传的代码时,它们将只有一个 LF。 为避免这种情况,只需将其写入您的项目根文件夹即可。

git config core.autocrlf false