250722-Git-LF will be replaced by CRLF the next time Git touches it问题解决

问题描述

LF will be replaced by CRLF the next time Git touches it

这个警告是 Git 在 Windows 系统上常见的行尾符(line ending)转换提示。它的意思是:

当前工作区中的文件 nokia 使用的是 Unix 风格的行尾符(LF),但 Git 检测到你在 Windows 系统上工作,默认会在下次提交或检出时将其转换为
Windows 风格的行尾符(CRLF)。


✅ 如何解决这个问题(两种方式):

方式一:保持 LF(推荐)

如果你希望保持 Unix 风格(LF),避免 Git 自动转换为 CRLF,可以这样做:

  1. 取消自动转换(项目级): 在项目根目录下运行:

    1
    git config core.autocrlf false
  2. 创建或修改 .gitattributes 文件(推荐): 在项目根目录下创建或编辑 .gitattributes 文件,添加以下内容:

    1
    * text=auto eol=lf

这会强制所有文本文件使用 LF 作为行尾符,无论你在哪个系统上。

  1. 重新标准化文件(可选): 如果你已经有一些文件被转换为 CRLF,可以运行:

    1
    git add --renormalize .

方式二:接受 CRLF(不推荐)

如果你不关心行尾符,允许 Git 自动转换为 CRLF,可以忽略警告或运行:

1
git config core.autocrlf true

🔍 总结建议

目标 操作建议
保持 LF(推荐) .gitattributes 中设置 * text=auto eol=lf
接受 CRLF git config core.autocrlf true

📌 补充说明

  • LF:Unix/Linux/macOS 默认行尾符(\n
  • CRLF:Windows 默认行尾符(\r\n
  • Git 的 core.autocrlf 设置只在本地生效,不会影响远程仓库。

如果你是团队协作项目,强烈建议使用 .gitattributes 统一行尾符,避免跨平台冲突。