git 換行符LF與CRLF轉換問題 IDE的默認換行符設置爲LF

在各操作系統下,文本文件所使用的換行符是不一樣的。UNIX/Linux 使用的是 0x0A(LF),早期的 Mac OS 使用的是0x0D(CR),後來的 OS X 在更換內核後與 UNIX 保持一致了。但 DOS/Windows 一直使用 0x0D0A(CRLF)作爲換行符。Git提供了一個“換行符自動轉換”功能。這個功能默認處於“自動模式”,當你在簽出文件時,它試圖將 UNIX 換行符(LF)替換爲 Windows 的換行符(CRLF);當你在提交文件時,它又試圖將 CRLF 替換爲 LF。Git 的“換行符自動轉換”功能聽起來似乎很智能,因爲它試圖一方面保持倉庫內文件的一致性(UNIX 風格),一方面又保證本地文件的兼容性(Windows 風格)。但是這個功能是有bug的,短期內都不太可能會修正。

在window下開發有一個大坑,就是換行默認是CRLF,也就是回車換行,但是Linux下只有換行LF,這樣代碼提交後,會出現編譯問題,所以最好的辦法是在IntelliJ下設置默認爲LF。首先我們先介紹CRLF,LF和CR這三種東西,CR是MAC老版本的做法,就是回車,但是後來的MAC系統統一換成LF了,LF是Linux下的做法,就是換行,這個做法比較自然,爲什麼要回車換行呢,是吧。微軟採用的是CRLF,看上去好像是兼容了CR和LF,但是實際完全不是那麼回事,就是回車並換行。

第一步:File->Settings… 

第二步:Editor->Code Style 
    可以看到,默認是System-Dependent,這個其實還是很牛叉的,根據系統自動配置,但是你是windows系統,默認是CRLF,服務器是Linux,你就得自己換了。 

 我們設置成下面這樣,保存就好了 :

    創建文件時,就能看到默認是LF了 

或者直接在idea的terminal根據參數進行設置:

1.Git設置

 

git config --global core.autocrlf false

git config --global core.safecrlf true

含義:

AutoCRLF

#提交時轉換爲LF,檢出時轉換爲CRLF

git config --global core.autocrlf true

 

#提交時轉換爲LF,檢出時不轉換

git config --global core.autocrlf input

 

#提交檢出均不轉換

git config --global core.autocrlf false

SafeCRLF

#拒絕提交包含混合換行符的文件

git config --global core.safecrlf true

 

#允許提交包含混合換行符的文件

git config --global core.safecrlf false

 

#提交包含混合換行符的文件時給出警告

git config --global core.safecrlf warn

2.IDE設置使用UNIX換行符

 

IDEA的設置File -> Settings

Editor -> Code Style

Line separator (for new lines) ,選擇:Unix and OS X (\n)

 

對已使用Windows換行符的文件,可以使用Sublime Text打開,

View->Line Endings,選Unix,保存;

 

參考網址: 

https://blog.csdn.net/echo_follow_heart/article/details/48314523
https://www.jetbrains.com/idea/help/configuring-line-separators.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章