windows换行转linux换行:CRLF-LF

in #cn7 years ago

image source

今天在 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,成功。

What you want, Go after It.


https://steemit.com 首发。感谢阅读。

欢迎Follow, Upvote, Reply, Resteem (repost)激励我创作更多更好的内容。

@syt

Sort:  

我记得git windows在安装的时候有这个选项来着

是嘛,我用的linux