git auto crlf

satjd

2019/01/03

Categories: git

最近在使用wsl里的git的时候,发现在wsl里的git status和windows中的不一样。而且,在wsl中的git提交的代码和脚本在linux下无法运行了。比如某个bash脚本就报出了如下错误:

/bin/sh^M: bad interpreter

问了谷歌,发现上面这个原因是错误地将CRLF(windows下的行尾格式)传到linux下运行了,Linux下使用的是LF格式,这就造成了上面多出来的那个^M。 解决方案: 在wsl下对git进行如下配置:

git config --global core.autocrlf true

进行上述配置后,则开启了git为windows用户提供的auto crlf功能。这个功能识别CRLF行尾,并且在从git索引中读取时,将LF行尾的代码自动转成CRLF,同时自己提交的CRLF行尾的代码也可以转成LF存在索引中。