git项目中统一换行符风格

  • 换行符导致的风格不一致报错问题

Git 由大名鼎鼎的 Linus 开发,最初只可运行于 * nix 系统,因此推荐只将 UNIX 风格的换行符保存入库。但它也考虑到跨平台协作的场景,并且提供了一个“换行符自动转换”功能。这个功能默认处于“自动模式”,当你在签出文件时,它试图将 UNIX 换行符(LF)替换为 Windows 的换行符(CRLF);当你在提交文件时,它又试图将 CRLF 替换为 LF。

在git更新文件时,LF的换行符会被更换为CRLF,提交时,将CRLF自动改为LF。

关于CRLF和LF:

  • CR:Carriage Return,对应ASCII中转义字符\r,表示回车
  • LF:Linefeed,对应ASCII中转义字符\n,表示换行
  • CRLF: Carriage Return & Linefeed,\r\n,表示回车并换行

Windows操作系统采用两个字符来进行换行,即CRLF;Unix/Linux/Mac OS X操作系统采用单个字符LF来进行换行;另外,MacIntosh操作系统(即早期的Mac操作系统)采用单个字符CR来进行换行。

在项目中结合eslint后,经常出现Delete CR的报错

eslint编译报错

说明当前代码中的换行符是CRLF,但是eslint要求是LF的换行符。

结合自动git提交和拉取自动会修改换行格式,说明:

仓库中的换行符是LF,但是在更新的时候被改为自动CRLF了。

所以需要关闭这个自动转换的功能(有三种方式),让代码风格变得完全自主可控:

命令行方式如下:

git config --global core.autocrlf false

如果你使用其他的UI工具,请看其他两种方式。

修改编译器,webstorm如下:

webstorm设置

现在,git更新和提交时不会修改换行,编译器中也是LF的换行。

统一为CRLF是同样的道理。

参考

  • https://www.cnblogs.com/heben/p/8390594.html
  • https://blog.csdn.net/qq_34035425/article/details/83038599

你可能感兴趣的:(git项目中统一换行符风格)