LF跟CRLF换行符问题
简单介绍下 LF 和 CRLF 的区别
LF:'\n',Linux 的换行符;CRLF:'\r\n',Windows 的换行符;
从以上的区别就可以看到,此类问题主要出现在多人开发时的跨系统问题。
如果不对该问题进行处理,每次 git commit 提交的时候都会存在换行符变更问题,导致一个文件在只修改几行代码的情况下,变更当前变更文件的全部换行符,导致其他系统开发人员拉取代码时,误以为修改文件全部变更的假象,也增加的解决冲突的烦恼。
为了解决这个问题可以把
Windows 开发人员的换行符统一成LF,以下以vscode为例在拉取项目仓库前,先进行以下统一配置
打开文件 -> 首选项 -> 设置 -> 文件 -> Eol -> 选择
\n,统一新建文件时换行符定义配置
.vscode/settings.json文件跟.gitignore文件
// .vscode/settings.json
{
"files.eol": "\n"
}
- 取消忽略
.vscode/settings.json文件
# .gitignore
# Editor directories and files
.vscode/*
!.vscode/settings.json
- 关闭 git 的
core.autocrlf这个配置,该配置默认是true,即git pull时自动将远程代码里的换行符(比如 LF)转换成当前系统的换行符(比如 CRLF)
# 关闭 git 的CRLF自动转换,保留文件原来的换行样式
git config --global core.autocrlf false
- 查看变更是否生效,为
false就是生效了
git config --global -l
# 输出结果:core.autocrlf=false
通过以上方法处理后就可以进行愉快的跨系统开发了
已有项目解决方法,一般情况下建议通过以上方法实现
- 在安装好
prettier插件后使用以下命令一键自动修改格式,以下命令会导致问题文件变更问题,一般情况下不建议使用
npx prettier --write --end-of-line lf .
Powered by Waline v2.15.8