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配置项,我这里配置的值是true,对于我这种情况,这不是最好的选择。
    这里配置的值是true,对于我这种情况,这不是最好的选择

  2. core.autocrlf配置项
    这个配置项的值有三项:true, false, input。这里涉及到两个阶段,假设一个场景,你需要从远端(以LF结尾)上拉下来一个项目(你的电脑是windows系统,以CRLF结尾),后来你想把它推上去。这两个阶段就是拉下来与推上去。
    在这里插入图片描述
    例如远端LF与windows电脑CRLF:
    true情况下,远端->本地,LF->CRLF,本地->远端,CRLF->LF
    false情况下,远端->本地,LF->LF,本地->远端,CRLF->CRLF
    input情况下,远端->本地,LF->LF,本地->远端,CRLF->LF
    综上所述,对于这个例子,所以配置成input是最好的选择。

  3. 使用git config --global core.autocrlf input命令更改配置项,如果你很疑惑这个命令为什么是这样的,可以点这里

经过以上操作后,能保证拉回到本地的代码换行符与远端匹配,但是如果你使用vscode写这个拉回来的代码,还要注意vscode编辑器本身的crlf配置规则。
我遇到的情况是,拉回到本地后没什么问题,但是在vscode编辑器里启动时会报格式错误。
我的解决办法是下载一个插件:
在这里插入图片描述
再去根目录配置一个.editorconfig文件:给对应文件类型下(我是所有文件类型,[*])加上一句end_of_line = lf,经过这样的配置后,对应文件类型的换行会按照lf进行换行。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值