[git] Git warning:LF will be replaced by CRLF

注:本文轉載自 Git warning:LF will be replaced by CRLF in readme.txt的原因與解決方案
stackoverflow 上的回答

原因

首先問題出在不同操作系統所使用的換行符是不一樣的,下面羅列一下三大主流操作系統的換行符:

  1. Uinx/Linux 採用換行符 LF 表示下一行(LF:LineFeed,中文意思是換行)
  2. Dos 和 Windows 採用回車 + 換行 CRLF 表示下一行(CRLF:CarriageReturn LineFeed,中文意思是回車換行)
  3. Mac OS 採用回車 CR 表示下一行(CR:CarriageReturn,中文意思是回車)

在 Git 中,可以通過以下命令來顯示當前你的 Git 中採取哪種對待換行符的方式

$ git config core.autocrlf
# that command will print "true" or "false" or "input"
  1. 爲 true 時,Git 會將你 add 的所有文件視爲文本問價你,將結尾的 CRLF 轉換爲 LF,而 checkout 時會再將文件的 LF 格式轉爲CRLF 格式。
  2. 爲 false 時,line endings 不做任何改變,文本文件保持其原來的樣子。
  3. 爲 input 時,add 時 Git 會把 CRLF 轉換爲 LF,而 checkout 時仍舊爲 LF,所以 Windows 操作系統不建議設置此值。

解決方法

將 core.autocrlf 設爲 false 即可解決這個問題,不過如果你和你的夥伴只工作於 Windows 平臺或者 Linux 平臺,那麼沒問題,不過如果是存在跨平臺的現象的話,還是需要考慮一下。

但當 core autocrlf 爲 true 時,還有一個需要慎重的地方,當你上傳一個二進制文件,Git 可能會將二進制文件誤以爲是文本文件,從而也會修改你的二進制文件,從而產生隱患。

PS:

附上修改 autocrlf 的命令,以改爲 false 爲例:

$ git config --global core.autocrlf false
#false 的位置放你想使 autocrlf 成爲的結果,true,false 或者 input 

本文轉載,如有侵權及時聯繫以刪除

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