git中LF将被替换为CRLF——文件将保留其原始行尾。

4
在Git中,LF将被CRLF替换 - 文件将保留其原始行尾。这是什么意思?

可能是重复的 git 将 LF 替换为 CRLF - Alex Tartan
添加一些上下文。您是在引用吗?引自哪里? - reto
2个回答

7
通常情况下,当你使用Windows系统,并且core.autocrlf被设置为true,或者.gitattributes包含指令来执行行尾标准化时,就会发生这种情况。在Windows机器上,行尾标准化的工作方式是:当你提交一个文件时,git会用LF替换每个CRLF,当你检出一个文件时,git会用CRLF替换每个LF。通常情况下,这对你来说都是透明的,在你的工作目录中你只看到CRLFs。然而,如果你以某种方式在工作目录中创建了一个只有LFs的文件,以下是会发生的事情:
  1. 当提交时,git将“转换”LFs为LFs,即不做任何处理
  2. 当检出时,git将LFs转换为CRLFs
结果是,你最终创建了一个只有LFs的文件,但从那时起,你总是看到其中的CRLFs。这就是git警告你的原因。 假设我们讨论的是文本文件,你可以忽略这个警告。但是,如果它是一个二进制文件,这意味着git将尝试对其进行行规范化,这将破坏该文件。在这种情况下,你需要检查你的.gitattributes文件,看看为什么会发生这种情况。

1
在Unix系统中,行尾使用换行符(LF)表示。在Windows中,一行由回车符(CR)和换行符(LF)组成,即(CRLF)。当你从Git获取来自Unix系统上传的代码时,它们只会有一个LF。 为了避免这种情况,只需在项目根目录中编写以下内容。
git config core.autocrlf false

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接