美文网首页
git项目中统一换行符风格

git项目中统一换行符风格

作者: YouthInXian | 来源:发表于2019-06-10 13:15 被阅读0次
    • 换行符导致的风格不一致报错问题

    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是同样的道理。

    参考

    相关文章

      网友评论

          本文标题:git项目中统一换行符风格

          本文链接:https://www.haomeiwen.com/subject/hdqzxctx.html