前情
Git(讀音為/gɪt/)是一個開源的分散式版本控制系統,可以有效、高速地處理從很小到非常大的專案版本管理,我公司目前都是基於Git來管理專案程式碼。
坑位
最近剛剛入職一家新公司,本地環境都配好後,我git clone程式碼後,只是簡單的瀏覽了程式碼,發現git就有了修改記錄,而且是整個檔案都是被修改了,一看只是換行符不同。
Why?
這個問題是由於不同的作業系統使用不同的換行符導致的。例如,Windows 系統使用 CRLF(回車換行)作為換行符,而 Linux 和 MacOS 系統使用 LF(換行)作為換行符。
解決方案
我們只要修改Git的配置即可
方案1:
開啟命令列,執行如下命令即可:
Git 有一個全域性配置項叫做 core.autocrlf
,它可以控制 Git 在提交和檢出時是否對換行符進行轉換。它有三個可選值:
true
:表示在提交時將 CRLF 轉換為 LF,在檢出時將 LF 轉換為 CRLF 。這個選項適合 Windows 使用者使用。input
:表示在提交時將 CRLF 轉換為 LF,在檢出時不進行轉換。這個選項適合 Linux 和 MacOS 使用者使用。false
:表示不進行任何轉換。這個選項適合想保持原始換行符不變的使用者使用。
git config --global core.autocrlf [input | true | false]
方案2:
也可以直接修改.git/config檔案
[core]
autocrlf = [input | true | false]
方案3:
除了 core.autocrlf
之外,還有一個配置項叫做 core.eol
(end of line),它可以指定倉庫中檔案使用哪種換行符。它有三個可選值:
lf
:表示倉庫中檔案使用 LF 作為換行符。crlf
:表示倉庫中檔案使用 CRLF 作為換行符。native
:表示倉庫中檔案使用當前作業系統預設的換行符。
git config --global core.eol [lf | crlf | native]
方案4:
也可以直接修改.git/config檔案
[core]
eol = [lf | crlf | native]
總結
上面4種方案其實是二種方式,一種是怎麼轉換換行符,一種是怎麼規定用哪一種換行符,我選擇的是第一種autocrlf為false,不管換行符問題,其實最的方式是團隊規定統一用一種換行符