分析原因
git是一个分布式版本控制系统,可以运用到团队的开发管理。在团队开发中,无法避免会出现跨系统开发的情况,即团队成员有的人用的是Linux系统,有人用mac,有人用windows
使用windows系统,用git拉下代码启动后总会出现大量的 error Delete ␍ prettier/prettier报错。原因是windows系统默认换行符为 crlf,即 ‘\r\n’,而用git拉下来的项目管理在linux系统上,默认换行符为 lf,即 ‘\n’。
解决办法
1. 使用 git config --list
命令查看core.autocrlf配置项。
2. core.autocrlf配置项有三个值:true, false, input
例如远端LF与windows电脑CRLF:
- true。远端->本地,LF->CRLF,本地->远端,CRLF->LF
- false。远端->本地,LF->LF,本地->远端,CRLF->CRLF
- input。远端->本地,LF->LF,本地->远端,CRLF->LF
3. 使用 git config --global core.autocrlf input
命令更改配置项
经过以上操作后,能保证拉取到本地的代码换行符与远端匹配,但是如果你使用vscode编辑拉取下来的代码,还要注意vscode编辑器本身的crlf配置规则。
直接拉取到本地后没什么问题,但是在vscode编辑器里启动时会报格式错误。
解决办法是下载一个插件:
再去根目录配置一个.editorconfig文件:给对应文件类型加上一句 end_of_line = lf,经过这样的配置后,对应文件类型的换行会按照lf进行换行。示例如下:
# 顶部的EditorConfig文件
root = true
# unix风格的换行符,每个文件都以换行符结尾
[*]
end_of_line = lf
insert_final_newline = true
# 用大括号展开符号匹配多个文件
# 设置默认字符集
# 设置所有以.js,.py结尾的文件的编码格式
[*.{js,py}]
charset = utf-8
# 使用空格缩进,设置4个空格缩进
[*.py]
indent_style = space
indent_size = 4
# 使用制表符(tab)缩进
[Makefile]
indent_style = tab
# 设置lib目录下的所有JS的缩进风格(使用空格缩进,缩进占用两个空格的位置)
[lib/**.js]
indent_style = space
indent_size = 2
# 匹配确切文件 package.json或.travis.yml
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2