git 自動換行在WINDOWS和LINUX下的差異
淡淡烟草味
淡淡烟草味 2017-05-02 09:32:11
0
2
806

最近在windows下面最了個項目用git來管理,git add .的時候一直報錯LF will be replaced by CRLF,網上的大部分答案都是git config --global core.autocrlf false,禁用自動換行,這樣做確實可以讓我在這個專案中add了

但是問題是,另一個專案(從mac下拉的程式碼),做管理的時候必須要把它設為true才可以


我現在腦子有點瓦特,能不能哪位大神仔細講一下,這個過程到底是發生了什麼?

淡淡烟草味
淡淡烟草味

全部回覆(2)
刘奇

額,你是不是用的百度。 。 。所以你根本不知道問題的原因,這和自動換行沒關係

windows 換行符:CRLF Linux/UNIX 換行符號:LF
所以你windows 到 UNIX 當然要轉換回車符。

git config --global core.autocrlf false

關閉換行轉換功能

git config --global core.autocrlf true

作用如下:
Git can handle this by auto-converting CRLF line endings into LF when you add a file to the index
來自官方文件

phpcn_u1582

由於git最早是Linux專屬的,所以換行一直是Linux的LF,如果一個項目組有Linux和Windows用戶,那麼換行符應該統一,當然一般文件應該統一為LF,autocrlf開啟後Windows用戶本地文件仍然是CR LF,提交時自動轉換為LF。

ps:由於國內使用Windows的多,所以很可能把Windows專屬的檔案也改為LF換行,例如bat批次腳本,這樣從github下載下來的檔案就遺失了CR換行符,導致無法運作。

這個設定項是多餘的,一般建議關掉,由人為來保證換行符統一。而一般現在的IDE都能正常顯示多種換行符風格,Windows下也能保證顯示LF正常。只要不用Windows記事本編輯程式碼就不會出現CR LF風格的換行符號。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板