错误情况如下图所示:

git报错remote: error: cannot run hooks/post-receive: No such file or directory-LMLPHP

如果你也显示这个错误但是其实在该路径上有上有这个文件,那么显然你遇到和我一样的情况,即你是Windows下创建的文件,但是试图在Lunix系统去打开它。这是在Windows下调用CentOS上文件显示的结果,如果你还有疑虑可以尝试在CentOS直接打开该文件,那么你将会遇到下面的错误:

-bash: hooks/post-receive: /bin/bash^M: bad interpreter: No such file or directory

因为各个操作系统的文件对于换行都是不一样的,对于DOS以及Windows操作系统是以CRLF标记换行,即一个回车+一个换行,而Linux或者Unix上面是以LF为标记的,即只有一个换行,因此两者的差异决定了两个系统的文件是不能随便移植的。

解决方案:

我说下我的解决方案哈,最简单的方式通过Linux命令将Windows文件转换为Lunix文件——dos2unix

不过在此之前还是要安装一下这个工具:

yum install -y dos2unix

完成后,直接命令加文件名称进行转换:

dos2unix post-receive

05-11 22:42