转载:http://blog.51cto.com/zhanjun/2062872
背景
在各操作系统下,文本文件所使用的换行符是不一样的。UNIX/Linux 使用的是 0x0A(LF),但 DOS/Windows 一直使用 0x0D0A(CRLF)作为换行符。
问题
需要把Windows git下模式dos改为unix 。
方法命令
#在vim下面查看当前文本的模式类型,一般为dos,unix
:set ff
#提交时转换为LF,检出时转换为CRLF
git config --global core.autocrlf true
#提交时转换为LF,检出时不转换(以上问题使用此命令可解决)
git config --global core.autocrlf input
#提交检出均不转换
git config --global core.autocrlf false
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