git項目中統(tǒng)一換行符風(fēng)格

  • 換行符導(dǎo)致的風(fēng)格不一致報錯問題

Git 由大名鼎鼎的 Linus 開發(fā),最初只可運行于 * nix 系統(tǒng),因此推薦只將 UNIX 風(fēng)格的換行符保存入庫。但它也考慮到跨平臺協(xié)作的場景,并且提供了一個“換行符自動轉(zhuǎn)換”功能。這個功能默認(rèn)處于“自動模式”,當(dāng)你在簽出文件時,它試圖將 UNIX 換行符(LF)替換為 Windows 的換行符(CRLF);當(dāng)你在提交文件時,它又試圖將 CRLF 替換為 LF。

在git更新文件時,LF的換行符會被更換為CRLF,提交時,將CRLF自動改為LF。

關(guān)于CRLF和LF:

  • CR:Carriage Return,對應(yīng)ASCII中轉(zhuǎn)義字符\r,表示回車
  • LF:Linefeed,對應(yīng)ASCII中轉(zhuǎn)義字符\n,表示換行
  • CRLF: Carriage Return & Linefeed,\r\n,表示回車并換行

Windows操作系統(tǒng)采用兩個字符來進(jìn)行換行,即CRLF;Unix/Linux/Mac OS X操作系統(tǒng)采用單個字符LF來進(jìn)行換行;另外,MacIntosh操作系統(tǒng)(即早期的Mac操作系統(tǒng))采用單個字符CR來進(jìn)行換行。

在項目中結(jié)合eslint后,經(jīng)常出現(xiàn)Delete CR的報錯

eslint編譯報錯

說明當(dāng)前代碼中的換行符是CRLF,但是eslint要求是LF的換行符。

結(jié)合自動git提交和拉取自動會修改換行格式,說明:

倉庫中的換行符是LF,但是在更新的時候被改為自動CRLF了。

所以需要關(guān)閉這個自動轉(zhuǎn)換的功能(有三種方式),讓代碼風(fēng)格變得完全自主可控:

命令行方式如下:

git config --global core.autocrlf false

如果你使用其他的UI工具,請看其他兩種方式。

修改編譯器,webstorm如下:

webstorm設(shè)置

現(xiàn)在,git更新和提交時不會修改換行,編譯器中也是LF的換行。

統(tǒng)一為CRLF是同樣的道理。

參考

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容