在各操做系統下,文本文件所使用的換行符是不同的。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 的,並且在短時間內都不太可能會修正。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 input
#提交檢出均不轉換
git config --global core.autocrlf false
SafeCRLF
#拒絕提交包含混合換行符的文件
git config --global core.safecrlf true it
#容許提交包含混合換行符的文件
git config --global core.safecrlf false 兼容性
#提交包含混合換行符的文件時給出警告
git config --global core.safecrlf warnbug
IDEA的設置File -> Settings
Editor -> Code Style
Line separator (for new lines) ,選擇:Unix and OS X (\n)im
對已使用Windows換行符的文件,能夠使用Sublime Text打開,
View->Line Endings,選Unix,保存;兼容