git中关于windows换行crlf与其他操作系统换行lf冲突

分析原因

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值