git學習之LF 與 CRLF 換行符轉換問題

git 換行符LF與CRLF轉換問題

一、背景

在各操作系統下,文本文件所使用的換行符是不一樣的。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 的,而且在短期內都不太可能會修正。

二、解決方案

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,保存;

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