背景
在各作業系統下,文本檔案所使用的換行符是不一樣的。UNIX/Linux 使用的是 0x0A(LF),但 DOS/Windows 一直使用 0x0D0A(CRLF)作為換行符。
問題
需要把Windows git下模式dos改為unix 。
方法指令
#在vim下面檢視目前文本的模式類型,一般為dos,unix
:set ff
#送出時轉換為LF,檢出時轉換為CRLF
git config --global core.autocrlf true
#送出時轉換為LF,檢出時不轉換(以上問題使用此指令可解決)
git config --global core.autocrlf input
#送出檢出均不轉換
git config --global core.autocrlf false
Windows用CR LF來定義換行,Linux用LF。
CR全稱是Carriage Return ,或者表示為\r, 意思是回車。
LF全稱是Line Feed,它才是真正意義上的換行表示符。
如果用git diff的時候看到^M字元,就說明兩個檔案在換行符上有所差别。
下面簡單的方法可以讓git diff的時候忽略換行符的差異:
git config --global core.whitespace cr-at-eol