git提示:warning: LF will be replaced by CRLF in db/create_table_01.sql.

29 阅读1分钟

1、提示内容解析

这个警告是 Git 在处理文本文件时的换行符转换提示,主要和不同操作系统的换行符差异有关:

  • LF(Line Feed) :是 Unix/Linux/macOS 系统的换行符(\n
  • CRLF(Carriage Return + Line Feed) :是 Windows 系统的换行符(\r\n

2、警告原因:

Git 有一个自动转换换行符的机制(默认开启):

  • 当你在 Windows 系统中提交文件时,Git 会自动将文件中的 CRLF 转换为 LF 存储到版本库中
  • 当你从版本库检出文件到 Windows 系统时,Git 会自动将 LF 转换回 CRLF

当你提交的文件(如 db/create_table_01.sql)中包含 LF 换行符时,Git 会提示 “将 LF 替换为 CRLF”。当你在本地电脑选择了linux的换行符,通过git提交,被误替换为windows操作系统的换行符,在linux服务器执行sql文件时,会由于换行符的原因报错。

3、如何处理?

配置换行符行为,修改 Git 配置:

  • 全局配置(适用于所有仓库) : bash
    # 关闭自动转换
    git config --global core.autocrlf false