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

时间:2015-05-29 07:06:18

标签: git gitlab

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

1 个答案:

答案 0 :(得分:5)

这通常发生在Windows上,并且core.autocrlf设置为true,或者.gitattributes包含执行行结束规范化的指令。

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

  1. 提交时,git将"转换" LFs到LFs,即什么都不做
  2. 签出时,git会将LF转换为CRLF
  3. 结果是,你最终创建了一个只有LF的文件,但从那时起你总是看到CRLF。这就是git警告你的。

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