這是因爲換行符在不一樣的操做系統上定義的區別形成的。git
Windows用CR LF來定義換行,Linux用LF。CR全稱是Carriage Return ,或者表示爲\r, 意思是回車。 LF全稱是Line Feed,它纔是真正意義上的換行表示符。爲何Windows添加一個CR和LF組合表示,我並不清楚。不過若是用git diff的時候看到^M字符,就說明兩個文件在換行符上有所差異。github
好比從個人Windows開發的同時那邊拿來一個目錄,就會發現幾乎全部的文件都被修改過了。其實並非這樣,都是因爲文件多了CR後形成的。spa
下面簡單的方法能夠讓git diff的時候忽略換行符的差別:操作系統
[plain] view plain copy.net
git config --global core.autocrlf true
更好的方法是每一個項目都有一個.gitattributes文件,裏面配好了換行符的設置,參考code
https://help.github.com/articles/dealing-with-line-endingsblog