這是由於換行符在不同的操作系統上定義的區別造成的。
Windows用CR LF來定義換行,Linux用LF。
CR全稱是Carriage Return ,或者表示為\r, 意思是回車。
LF全稱是Line Feed,它才是真正意義上的換行表示符。
如果用git diff的時候看到^M字符,就說明兩個文件在換行符上有所差別。
下面簡單的方法可以讓git diff的時候忽略換行符的差異:
git config --global core.whitespace cr-at-eol
更好的方法是每個項目都有一個.gitattributes文件,里面配好了換行符的設置,參考