[git] warning: LF will be replaced by CRLF | fatal: CRLF would be replaced by LF

ChuanqiDuan發表於2017-11-27

轉載於:http://blog.csdn.net/feng88724/article/details/11600375

遇到這兩個錯誤,是因為Git的換行符檢查功能。

core.safecrlf

Git提供了一個換行符檢查功能(core.safecrlf),可以在提交時檢查檔案是否混用了不同風格的換行符。這個功能的選項如下:

false - 不做任何檢查
warn - 在提交時檢查並警告
true - 在提交時檢查,如果發現混用則拒絕提交

建議使用最嚴格的 true 選項。
core.autocrlf

假如你正在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

相關文章