理解警告" LF将被CRLF取代"

时间:2018-03-16 15:06:34

标签: git line-endings

我已经阅读了此答案(LF will be replaced by CRLF in git - What is that and is it important?)中讨论的Git文档,但我不明白这对我的情况意味着什么。

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

git config core.autocrlf在这台机器上是正确的。无论如何我还是犯了。 Windows上的行结尾仍然是LF。然后我在Linux机器上检出了文件,其中git config core.autocrlf似乎没有设置。我检查了那里的线路结尾,他们也是LF。

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

此外 - Git在其内部回购中使用了哪些行结尾?

1 个答案:

答案 0 :(得分:2)

我想你会说内部git更喜欢LF。说它“内部使用LF”并不十分准确,因为你可以不配置它。 (例如,如果团队中的每个人都使用Windows,那么你们都会关闭eol规范化,那么git将拥有CRLF eol标记。)

警告说的是,您正在使用换行标准化检查此内容,但它已经有LF。如果你使用autocrlf检查它有效,你将获得CRLF结尾。但是,由于您的工作树中有本地副本,因此它将保持不变。

所以“where”通常是使用autocrlf = true的任何新repo;或者任何同事的回购,如果从git退房为他们本地创建文件