在 Git 中,CRLF(Carriage Return + Line Feed) 是 Windows 系统的换行符,而 Linux/macOS 用 LF(Line Feed)。Git 默认会自动转换换行符(Windows 下拉取时 LF→CRLF,提交时 CRLF→LF),若想禁用这种自动转换(即 “不设置 CRLF”),核心是通过 Git 配置关闭换行符自动处理,具体操作如下:
一、核心配置:禁用 CRLF 自动转换
通过 core.autocrlf 配置控制换行符转换,禁用需设置为 false,支持全局配置(所有仓库)或局部配置(当前仓库)。

  1. 全局配置(推荐,所有 Git 仓库生效)
    打开终端 / 命令行,执行:

    git config --global core.autocrlf false
  2. 局部配置(仅当前仓库生效)
    进入项目的 Git 仓库根目录,执行:

    git config core.autocrlf false

    配置说明:
    core.autocrlf false:Git 不做任何换行符转换,工作区文件的换行符完全由你本地编辑器 / 系统决定(Windows 保留 CRLF,Linux/macOS 保留 LF);
    对比默认值 true(Windows 下自动转换)和 input(仅提交时 CRLF→LF,拉取不转换),false 是彻底禁用转换。
    二、补充配置:避免 Git 标记文件为 “已修改”(可选)
    若禁用转换后,Git 仍误判文件因换行符变化为 “已修改”,需配置 core.safecrlf 关闭换行符检查:

    # 全局禁用换行符检查(推荐)
    git config --global core.safecrlf false
    core.safecrlf

    说明:
    true(默认):提交时若存在混合换行符,Git 会报错阻止提交;
    false:关闭检查,允许混合换行符提交

检查并会阻止提交

git config --global core.autocrlf true
git config --global --unset core.safecrlf

仅恢复 core.autocrlf 默认值

Windows 系统中 Git 默认core.autocrlf为true,若之前设为false,执行以下命令单独恢复该配置:

git config --global core.autocrlf true

标签: none

添加新评论