Git diff ^M的消除

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

  1. git config --global core.whitespace cr-at-eol  
  2. git config --global core.autocrlf true

更好的方法是每一个项目都有一个.gitattributes文件,里面配好了换行符的设置,参考code

https://help.github.com/articles/dealing-with-line-endingsblog

相关文章
相关标签/搜索