Git 提交,提示 LF 换 CRLF 问题
报错信息
$ git add -A
warning: LF will be replaced by CRLF in README.md.
The file will have its original line endings in your working directory
第一行,告诉我们,提交此文件时,LF 会被替换为 CRLF。
第一行,告诉我们,在当前工作区,此文件会依旧用原本的 LF 结束符。
原因分析
我用的编辑器 VsCode中,启用了 editorconfig 扩展, 我们项目中的 .editorconfig
中的配置是这样的:
也就是我现在项目下,编辑文件,默认都是采用 LF
结束符。
但是此时,我 Git 的 core.autocrlf=true
它本来是,把 win 的 CRLF 转为 LF ,然后提交的。但此时因为我 win 下编辑文件默认的是 LF,导致其反转了。
解决办法
因为有 .editorconfig
帮我们多端统一格式,我们也不用说要把本地的 LF 都转为 CRLF 了,直接改 Git 的配置即可:
git config --global core.autocrlf input
我尝试过改为 false,但是依旧会报错误,不知道具体原因,希望有大佬解答一下更好。
本作品采用《CC 协议》,转载必须注明作者和本文链接
git 的自动转换换行符纯属多余,没有任何用途,禁用就行。
是因为 windows 和 linux 换行符不一致导致的,linux 换行
\n
windows 中是\r\n
忽略换行,参数应该是
true
在项目中设置试试,我也尝试全局设置过忽略权限变更,但是无效,在单个项目中设置可生效