我曾被Windows/Linux git的行结束问题所困扰。通过GitHub, MSysGit和其他来源,似乎最好的解决方案是让您的本地回购设置为使用linux风格的行结束符,但设置核心。专制是真实的。不幸的是,我没有做到这一点足够早,所以现在每次我拉改变线结束是borked。
我以为我在这里找到了答案,但我不能让它为我工作。我的Linux命令行知识有限,所以我甚至不确定“xargs fromdos”行在他的脚本中起什么作用。我不断收到关于不存在这样的文件或目录的消息,当我设法将其指向一个现有目录时,它告诉我我没有权限。
我已经在Windows和Mac OS X终端上尝试了MSysGit。
我在一次回购中也遇到了同样的问题。如果你同时使用windows和linux系统进行相同的代码repo和pull和push,试试这个:
首先,设置你的git配置如下:
git config --global core.autocrlf true
这将确保在写入对象数据库时将CRLF转换为LF,然后在写入工作目录时再次将LF替换为CRLF。因此,你的回购将是安全的,只有一种类型的行结束,在本地你将有窗口行结束在windows系统。
对于linux/MAC, git配置如下:
git config --global core.autocrlf input
这将确保在写入对象数据库时将CRLF转换为LF,但不会做相反的事情,保留linux/MAC所需的LF。
对于linux/MAC上已经存在的错误行尾,请使用dos2unix
MAC:
brew install dos2unix # Installs dos2unix Mac
find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
Linux:
sudo apt-get install -y dos2unix # Installs dos2unix Linux
sudo find . -type f -exec dos2unix {} \; # recursively removes windows related stuff
希望这能解决你的问题。