1. 程式人生 > >Git diff ^M的消除

Git diff ^M的消除

               

這是由於換行符在不同的作業系統上定義的區別造成的。

Windows用CR LF來定義換行,Linux用LF。CR全稱是Carriage Return ,或者表示為\r, 意思是回車。 LF全稱是Line Feed,它才是真正意義上的換行表示符。為什麼Windows新增一個CR和LF組合表示,我並不清楚。不過如果用git diff的時候看到^M字元,就說明兩個檔案在換行符上有所差別。

比如從我的Windows開發的同時那邊拿來一個目錄,就會發現幾乎所有的檔案都被修改過了。其實並不是這樣,都是由於檔案多了CR後造成的。

下面簡單的方法可以讓git diff的時候忽略換行符的差異:

git config --global core.whitespace cr-at-eol

更好的方法是每個專案都有一個.gitattributes檔案,裡面配好了換行符的設定,參考