git试图在ubuntu上将LF转换为CRLF,core.autocrlf设置为true

git试图在ubuntu上将LF转换为CRLF,core.autocrlf设置为true,git,configuration,core.autocrlf,Git,Configuration,Core.autocrlf,我在ubuntu上使用git,autocrlf设置为true。“我的编辑器”配置为使用LF作为行尾字符。在我编辑了一个文件之后 git add . 我得到: warning: LF will be replaced by CRLF in file1.txt. (1) The file will have its original line endings in your working directory. (2) 至于(1),为什么git要将我文件中的LF转换为CRLF?只有当您的文件包含

我在ubuntu上使用git,autocrlf设置为true。“我的编辑器”配置为使用LF作为行尾字符。在我编辑了一个文件之后

git add .
我得到:

warning: LF will be replaced by CRLF in file1.txt. (1)
The file will have its original line endings in your working directory. (2)
至于(1),为什么git要将我文件中的LF转换为CRLF?只有当您的文件包含CRLF并且git才会尝试将CRLF转换为LF时,它是否应该完全按照这种方式工作


至于(2),这是否意味着我正在查看的文件仍将只使用LF,但git暂存区域中的快照将被转换

通过查看警告消息,我猜您的配置如下所示:

  • 您使用的windows将
    core.eol
    设置为
    native
    (git 1.7.2及更高版本中的默认设置),或者已明确将core.eol设置为
    crlf
  • 您的core.autocrlf设置为
    input
这些
git属性
core.autocrlf
core.eol
允许您配置行尾所需的内容及其可能的值,并在git手册页和

对(1)和(2)的回答是,“因为您这样配置了它”

您应该做什么取决于您所在的平台,以及您将从哪个平台访问git。建议git仅将
LF
存储为行尾,否则生成的blob哈希将发生更改,git将抱怨“更改的行”,即使更改可能只是行尾字符


由于您使用的是Ubuntu,因此您需要将
core.eol
设置为
lf
并将
core.autocrlf
设置为
input
,这样git就不会在您的工作树中将lf转换为CRLF。

如果您没有进行跨平台开发(特别是使用Windows),将autocrlf设置为false,并让您的同事也这样做。在git中将文件制作成对象之前,不需要修改它们。这是一个巨大的麻烦。在使用git的4年中,我从未处理过这个问题。除非您使用Windows执行x-platform,否则设置为false。轻松修复。

不,我正在使用ubuntu。我确信core.autocrlf的配置是正确的。如果你在Ubuntu上,忘记所有其他的,将core.autocrlf输入。也就是说,如果没有其他人在windows上使用它。