项目中遇到git下来的项目脚本在Mac下无法使用。
通过 vim 查看
set ff
发现脚本的fileformat是dos的,通过
set ff = unix
改成unix之后就能使用了。
但是需要批量修改文件的fileformat,太过麻烦。
换行符对应的系统:
CRLF->Windows-style
LF->Unix Style
CR->Mac Style
CRLF表示句尾使用回车换行两个字符(即我们常在Windows编程时使用"\r\n"换行)
LF表示表示句尾,只使用换行.
CR表示只使用回车.
当文件更改时,Git以自己的方式处理行尾。例如每一行自动在后面加上windows下的换行符cr+lf(显示为^M).
原因是Git设置出问题,应该要设置git config --global core.autocrlf false把autocrlf选项关闭。
如果该选项为true,则表示git会自动将文本文件(最经典是源码)的换行符转换当前操作系统的换行符(windows下为cr+lf,linux下为lf, mac下为cr)。例如:源码文件是linux下保存的,在windows下签出的时候,自动把lf转换层cr+lf,在签入的时候,则把cr+lf转换成lf回去。
如果需要在多操作系统下,一般是设置为true。windows下的msysgit默认是true,linux下则为false。
解决方案:
因为我是Mac 所以使用
git config --global core.autocrlf input