最近工作中,使用git clone代碼后,啟動項目,卻突然報錯,根據提示內容,發現是換行的問題引起的。
報錯如下圖所示:

為什么呢?
為什么會出現這種原因呢?發現團隊中,大家分別使用了windows系統,Linux系統,MAC OS系統;在不同的操作系統中,換行符並不統一,Linux系統中使用0x0D0A(CRLF),而MAC OS系統起初使用0x0D(CR) 后來和Linux系統保持一致。 而git默認采用Linux的換行符。
git 為了解決不同平台換行符不一致的問題,在 windows 操作系統中默認在檢出代碼時將 LF 轉換為 CRLF,而在提交的時候再轉換為 LF,但是看似完美的解決方案在中文環境中卻失效了。
多操作系統平台協同開發時,遇到這種問題,應該怎么辦呢?
解決方案
- 使用編譯器配置
-
git設置
方法一:編譯器設置
file — setting — code style — Line separator 選擇Unix and macOS

方法二:
使用方法一的時候,突然發現失效了,這個時候,我們就需要去配置git,先了解下git的相關參數:eol autocrlf safecrlf
eol: 設置工作目錄中文件的換行符,有三個值 lf, crlf 和 native(默認,同操作系統)autocrlf:true表示檢出是轉換CRLF, 提交時轉換為 LFinput表示檢出是不轉換,提交時轉換為 LFfalse表示不做轉換
safecrlf:true表示不允許提交時包含不同換行符warn則只在有不同換行符時警告false則允許提價時有不同換行符存在
AutoCRLF
#提交時轉換為LF,檢出時轉換為CRLF
git config --global core.autocrlf true
#提交時轉換為LF,檢出時不轉換
git config --global core.autocrlf input
#提交檢出均不轉換
git config --global core.autocrlf false
SafeCRLF
#拒絕提交包含混合換行符的文件
git config --global core.safecrlf true
#允許提交包含混合換行符的文件
git config --global core.safecrlf false
#提交包含混合換行符的文件時給出警告
git config --global core.safecrlf warn
配置方法如下:
<!--統一換行符為 lf--> git config --global core.eol lf <!--將自動轉換關閉,避免轉換失敗不能不同進行提交--> git config --global core.autocrlf false <!--禁止混用 lf 和 crlf 兩種換行符--> git config --global core.safecrlf true
咦,怎么啟動項目還不行呢?小伙伴們,注意哦!!!如果已經啟動項目的話,記得重新pull代碼,因為現有的代碼格式已經轉換了,需要重新配置下哦!
多操作系統平台協同開發時,git的注意事項:不要使用git的換行符自動轉換功能,盡可能保證代碼的換行符都是unix!
人最值得高興的事:父母健在、知己兩三、盜不走的愛人,其他都是假象,別太計較。
河南加油!中國加油!
