这是什么意思 LF 将在下次 git 触及它时被 CRLF 替换[重复]

问题描述 投票:0回答:4

为什么当我使用

git add -A
将文件添加到暂存区域时显示警告并出现以下消息:

enter image description here

这是什么意思?

html css git github core.autocrlf
4个回答
7
投票

如果您本地有 Windows 行结尾 (

\n
),您将 git 配置为检查 UNIX 行结尾 (
\r\n
),并且还检查具有 UNIX 行结尾的文件的 Windows 行结尾,但您本地有一个使用 UNIX 行结尾的文件.

您已将带有 UNIX 行结尾的文件添加到暂存区域。该信息告诉您,当 git(而不是您)对该文件进行更改时,它将用 Windows 行结尾替换那些 UNIX 行结尾。

此类更改的一个示例是其他人对影响该文件的远程存储库进行更改,然后您拉取。其他示例包括签出该文件(或使用该文件的不同版本签出另一个分支/提交)或在文件受到合并影响时合并某些内容。

这只是告诉您 git 将来可能会更改行结尾的信息。如果您不依赖 UNIX 行结尾,则无需担心。

如果您想始终使用 UNIX 行结尾,可以配置

core.autocrlf


3
投票

git 存储具有相同行结尾(LF 或 CRLF)的通用扩展名的文件。您可以设置 .gitattributes 文件中使用哪个行结尾。所以你可能有:

*.sh text eol=lf
*.txt text eol=crlf

git 不会更新您的本地文件,但如果您将文件推送到远程存储库并在更改后再次拉取它,它将采用与其扩展名关联的行结尾,而不是最初用于该文件的行结尾。


3
投票

LF 和 CRLF 是文件行结束符的不同格式。

如果您同时切换 Unix 和 Windows 系统,可能会出现此问题。

您可以在另一个问题

中看到有关不同行结尾的所有详细信息

2
投票

这意味着文件的行结束编码将发生变化。

LF
是换行符,而
CR
是回车符。
换行和回车 MDN 文档

消息指出 GIT 将用

LF
CR
 替换“换行”字符(当前为 
LF

© www.soinside.com 2019 - 2024. All rights reserved.