- 關於git換行符處理的問題,我查了一查,自己的設置中,global-config中設了autocrlf=false,systemwide中將autocrlf設成了true.
- 關於配置的作用域,systemwide>global>local。local沒有配置,global會覆蓋systemwide的配置,因此最終生效的是“autocrlf=false”。
- 這句的意思是“在提交與檢出代碼的時候均不對換行符進行轉換”,這個設置是在當時入職時,參照wiki上配置的,然后並沒有深入了解其作用。現在把根換行符相關的配置說明列在這里:
首先crlf是windows下的換行符,而lf是unix下的換行符。
autocrlf =true 表示要求git在提交時將crlf轉換為lf,而在檢出時將crlf轉換為lf。 autocrlf = false表示提交和檢出代碼時均不進行轉換 autocrlf = input 表示在提交時將crlf轉換為lf,而檢出時不轉換
-
我又檢查了一下idea右下角那兒關於文件的換行符,使用的地crlf,,這表明當前使用的是CRLF換行符,而autocrlf又是false,這會使得代碼倉庫中出現混合換行符,git中另有一個配置項,名叫“safecrlf”默認值是“warn”,因此git在提交時會彈出關於這個問題的提示,然而我無知的忽略了它。。。——在某次操作中順手將其設為了“不再提示”,這也是導致后來問題的一個原因。因為這么做的話,safecrlf的值就被改為了false.
-
因此,可以單擊右下角這個換行符標志,將其改為“LF”,同時把全局配置改為autocrlf=input,以使倉庫中只保留Unix換行符。
-
另外,git有一個safecrlf,默認是false,可以改成true,表示拒絕提交混合換行符的代碼。當然這可能會造成煩人的提示,但對於windows下的特殊情況可以這樣設置。它的具體配置含義如下:
safecrlf = true 表示 拒絕提交包含混合換行符的文件
safecrlf = false 表示 允許…
safecrlf = warn 表示警告
