今天在 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
,成功。
我记得git windows在安装的时候有这个选项来着
是嘛,我用的linux