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

相關文章
相關標籤/搜索