这是因为换行符在不一样的操做系统上定义的区别形成的。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