[IMAGE: https://cdn.pixabay.com/photo/2013/07/13/11/23/apple-158063_960_720.png]
今天在 git add -A 文件时,发生错误:
> fatal: CRLF would be replaced by LF in ...
上网查询后发现这是行尾结束符问题。因为Windows使用回车和换行两个字符来结束一行,而Mac和Linux只使用一个字符换行。
其中一个解决方案是:
允许提交包含混合换行符的文件,设置
> git config --global core.safecrlf false
我设置的是拒绝提交包含混合换行符的文件,虽然这个方法可行,但不适合我。
另一个方案是:
git可以在提交时自动把行结束符CRLF转换成LF,用 core.autocrlf来打开此项功能。我把 core.autocrlf设置成 'input' 来告诉 git 在提交时把CRLF转换成LF,签出时不转换
>git config --global core.autocrlf input
不过还是提示错误,设置为 'false' 也不行。
最终解决方案:
既然是换行问题,那就直接修改换行符。于是我找到了 dos2unix 这个工具,安装
> sudo apt-get install dos2unix
然后修复文件的换行符(整个项目都进行修复)
> find ./ -type f -exec dos2unix {} +
最后 git add -A,成功。