遇到這兩個錯誤, 基本上都是叫你將 autocrlf 設置爲 false. 可是我以爲這樣很不妥。git
若是你的源文件中是換行符是LF,而autocrlf=true, 此時git add就會遇到 fatal: LF would be replaced by CRLF 的錯誤。有兩個解決辦法:程序員
1. 將你的源文件中的LF轉爲CRLF便可【推薦】編程
2. 將autocrlf 設置爲 falsespa
若是你的源文件中是換行符是CRLF,而autocrlf=input, 此時git add也會遇到 fatal: CRLF would be replaced by LF 的錯誤。有兩個解決辦法:code
1. 將你源文件中的CRLF轉爲LF【推薦】orm
2. 將autocrlf 設置爲true 或者 false開發
個人建議:在Mac上設置 autocrlf = input, 在Windows上設置autocrlf = true(默認值)。input
----------------------------------------------------------------------------------------------------------------------------------it
這樣的話,程序
Windows:(true)
提交時,將CRLF 轉成 LF再提交;
切出時,自動將LF 轉爲 CRLF;
MAC/Linux: (input)
提交時, 將CRLF 轉成 LF再提交;
切出時,保持LF便可
這樣便可保證倉庫中永遠都是LF. 並且在Windows工做空間都是CRLF, 在Mac/Linux工做空間都是LF.
----------------------------------------------------------------------------------------------------------------------------------
假如你正在Windows上寫程序,又或者你正在和其餘人合做,他們在Windows上編程,而你卻在其餘系統上,在這些狀況下,你可能會遇到行尾結束符問題。這是由於Windows使用回車和換行兩個字符來結束一行,而Mac和Linux只使用換行一個字符。雖然這是小問題,但它會極大地擾亂跨平臺協做。
Git能夠在你提交時自動地把行結束符CRLF轉換成LF,而在簽出代碼時把LF轉換成CRLF。用core.autocrlf
來打開此項功能,若是是在Windows系統上,把它設置成true
,這樣當簽出代碼時,LF會被轉換成CRLF:
$ git config --global core.autocrlf true
Linux或Mac系統使用LF做爲行結束符,所以你不想 Git 在簽出文件時進行自動的轉換;當一個以CRLF爲行結束符的文件不當心被引入時你確定想進行修正,把core.autocrlf
設置成input來告訴 Git 在提交時把CRLF轉換成LF,簽出時不轉換:
$ git config --global core.autocrlf input
這樣會在Windows系統上的簽出文件中保留CRLF,會在Mac和Linux系統上,包括倉庫中保留LF。
若是你是Windows程序員,且正在開發僅運行在Windows上的項目,能夠設置false
取消此功能,把回車符記錄在庫中:
$ git config --global core.autocrlf false