永久禁用 git 换行符自动转换需执行 git config --global core.autocrlf false 和 git config --global core.safecrlf true,再对已有仓库运行 git rm --cached -r . && git reset --hard 以恢复原始 lf 换行符。

你在 Windows 10 上用 Git 拉取 Linux 或 macOS 团队成员提交的代码时,经常发现刚 clone 下来的文件里所有换行符都被悄悄改成了 CRLF,导致 diff 全红、编辑器报“混合换行符”警告、甚至某些脚本(如 shell、Dockerfile)执行失败——这不是文件内容被篡改,而是 Git 默认在 Windows 上自动做了 LF→CRLF 转换。
永久禁用 Git 的换行符自动转换
第一步:打开 Git Bash 或 Windows 终端(以管理员或普通用户身份均可),执行以下命令:
git config --global core.autocrlf false
这一步直接关闭 Git 所有自动换行符转换行为。此后 Git 不会在 git add 时把 CRLF 转成 LF,也不会在 git checkout 或 git pull 时把 LF 转成 CRLF——【文件换行符将完全保持原始状态】。这是最彻底、最可控的方案,尤其适合纯 Windows 开发但需与跨平台仓库协作的场景。
补充加固:防止混合换行符误提交
仅设 autocrlf=false 还不够。如果你本地编辑器(如 VS Code、Notepad++)默认用 CRLF 保存新文件,而项目其他文件是 LF,下次 git add 就会混入 CRLF,造成污染。此时要加一道保险:
git config --global core.safecrlf true
该设置会让 Git 在 git add 时检查:只要文件里同时存在 \n 和 \r\n,就直接拒绝暂存,并报错提示“CRLF would be replaced by LF”。这样你必须先手动统一换行符,才能继续提交——【避免无意中把混合换行符推送到远程仓库】。
验证配置是否生效
执行以下命令查看当前全局配置:
GitHub 仓库备份技能 - 将 OpenClaw 工作空间自动或手动备份至 GitHub 私有仓库。支持自动定时备份和手动交互式配置,引导完成 Token 配置、仓库创建、首次备份及定时任务设置。用途:(1) 首次设置 (2) 日常备份。
git config --global core.autocrlf && git config --global core.safecrlf
正确输出应为:
false
true
如果输出为空或不是这两值,说明上一步命令未成功执行,需重新运行。注意:该配置立即生效,无需重启终端或重装 Git。
对已有仓库立即清理已错转的文件
若你之前已拉取过代码,且工作区文件已被转成 CRLF,现在改完配置还不算完——Git 缓存里仍记着旧的 CRLF 状态,下次 pull 可能继续干扰。必须强制重置工作区换行符为原始 LF:
第一步:确保当前分支无未提交更改,或先备份重要修改;
第二步:在项目根目录运行:
git rm --cached -r . → git reset --hard
这条命令会清空 Git 暂存区所有文件记录,然后从最新 commit 重新检出——此时因 autocrlf=false 生效,检出的文件将严格保留远端存储的 LF 换行符,不再被转成 CRLF。










