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
- 设置默认换行符
-
File->Settings
-
Editor->Code Style
-
General -> Line separator 修改为 Unix and macOS(\n)
创建文件时,就能看到默认是LF了 。
这时只是新建文件时是LF,如果当前已经有项目,那项目的设置还是CRLF,还需要修改当前项目。
- 修改当前项目换行符
- File -> File Properties -> Line separator 修改为 Unix and macOS(\n)