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

问题

在团队开发中,无法避免会出现跨系统开发的情况,即团队成员有的人用的是Linux系统,有人用mac,有人用windows,本人使用的是windows系统; 用git拉下代码启动后总会出现大量的 error Delete ␍ prettier/prettier报错。

原因

这些错的原因是使用的windows系统默认换行符为crlf,即'\r\n'; git拉下来的代码换行符为lf(即'\n')

使用git config --list命令查看core.autocrlf配置项为true

core.autocrlf配置项
这个配置项的值有三项:true, false, input。这里涉及到两个阶段,假设一个场景,你需要从远端(以LF结尾)上拉下来一个项目(你的电脑是windows系统,以CRLF结尾),后来你想把它推上去。这两个阶段就是拉下来与推上去。

取值\阶段 拉下来 推上去
true 无论远端是什么
统一变成本地换行
无论本地是什么
统一变成远端换行
false 不处理 不处理
input 不处理 无论本地是什么
统一变成远端换行

如何解决

IntelliJ Idea

  • 设置默认换行符
  1. File->Settings

  2. Editor->Code Style

  3. General -> Line separator 修改为 Unix and macOS(\n)

    创建文件时,就能看到默认是LF了 。
    这时只是新建文件时是LF,如果当前已经有项目,那项目的设置还是CRLF,还需要修改当前项目。

  • 修改当前项目换行符
  1. File -> File Properties -> Line separator 修改为 Unix and macOS(\n)

参考文献

. https://prettier.io/docs/en/options.html#prose-wrap

posted @ 2022-06-21 15:28  fwxin  阅读(857)  评论(0编辑  收藏  举报