git试图在ubuntu上将LF转换为CRLF,core.autocrlf设置为true
我在ubuntu上使用git,autocrlf设置为true。“我的编辑器”配置为使用LF作为行尾字符。在我编辑了一个文件之后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?只有当您的文件包含
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
(git 1.7.2及更高版本中的默认设置),或者已明确将core.eol设置为native
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上使用它。