在各操作系統下,文本文件所使用的換行符是不一樣的。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