[Git] Windows下Git提交代碼提示warning: LF will be replaced by CRLF

遇到這兩個錯誤,是因爲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

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