主要原因是,不同系统下,文件的换行符是用不同字符表示的。
Linux采用换行符LF表示下一行;
Windows采用回车+换行CRLF表示下一行;
Mac OS采用回车CR表示下一行。
解决方法是,切换git对待换行符的方式。
git config core.autocrlf
查询当前应对策略。
为true时,Git会将你add的所有文件视为文本问价你,将结尾的CRLF转换为LF,而checkout时会再将文件的LF格式转为CRLF格式。
为false时,line endings不做任何改变,文本文件保持其原来的样子。
为input时,add时Git会把CRLF转换为LF,而check时仍旧为LF。
使用如下语句,让git忽略对换行符的判断。
git config core.autocrlf false