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 中的配置是这样的:
Git 提交,提示 LF 换 CRLF 问题

也就是我现在项目下,编辑文件,默认都是采用 LF 结束符。
但是此时,我 Git 的 core.autocrlf=true

它本来是,把 win 的 CRLF 转为 LF ,然后提交的。但此时因为我 win 下编辑文件默认的是 LF,导致其反转了。

解决办法

因为有 .editorconfig 帮我们多端统一格式,我们也不用说要把本地的 LF 都转为 CRLF 了,直接改 Git 的配置即可:

git config --global core.autocrlf input

我尝试过改为 false,但是依旧会报错误,不知道具体原因,希望有大佬解答一下更好。

本作品采用《CC 协议》,转载必须注明作者和本文链接
六月的风
Junwind
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

git 的自动转换换行符纯属多余,没有任何用途,禁用就行。

1年前 评论

是因为 windows 和 linux 换行符不一致导致的,linux 换行 \n windows 中是 \r\n

忽略换行,参数应该是 true

git config core.autocrlf true

在项目中设置试试,我也尝试全局设置过忽略权限变更,但是无效,在单个项目中设置可生效

git config core.filemode  false
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!