为什么当我使用
git add -A
将文件添加到暂存区域时显示警告并出现以下消息:
这是什么意思?
如果您本地有 Windows 行结尾 (
\n
),您将 git 配置为检查 UNIX 行结尾 (\r\n
),并且还检查具有 UNIX 行结尾的文件的 Windows 行结尾,但您本地有一个使用 UNIX 行结尾的文件.
您已将带有 UNIX 行结尾的文件添加到暂存区域。该信息告诉您,当 git(而不是您)对该文件进行更改时,它将用 Windows 行结尾替换那些 UNIX 行结尾。
此类更改的一个示例是其他人对影响该文件的远程存储库进行更改,然后您拉取。其他示例包括签出该文件(或使用该文件的不同版本签出另一个分支/提交)或在文件受到合并影响时合并某些内容。
这只是告诉您 git 将来可能会更改行结尾的信息。如果您不依赖 UNIX 行结尾,则无需担心。
如果您想始终使用 UNIX 行结尾,可以配置
core.autocrlf
。
git 存储具有相同行结尾(LF 或 CRLF)的通用扩展名的文件。您可以设置 .gitattributes 文件中使用哪个行结尾。所以你可能有:
*.sh text eol=lf
*.txt text eol=crlf
git 不会更新您的本地文件,但如果您将文件推送到远程存储库并在更改后再次拉取它,它将采用与其扩展名关联的行结尾,而不是最初用于该文件的行结尾。