cannot run .git/hooks/pre-commit No such file or directory

今天的可爱同事”蔡包子”碰见这样一个问题,在执行git commit的时候抛出错误:
cannot run .git/hooks/pre-commit: No such file or directory

究其原因是跨平台造成的换行符的不一致造成,在不同平台开发者同事进行开发的时候,容易引起这样的问题,在使用IDE的时候,IDE建议修改文件的换行符号,如果接收建议,就导致这个问题.所以团队的环境一致性还是挺重要的.
解决办法如下:

1
2
cp .git/hooks/pre-commit /tmp/pre-commit
tr -d '\r'< /tmp/pre-commit > .git/hooks/pre-commit

执行之后如果有其他文件抛出相似的错误,依照处理即可.

1
2
3
4
5
cp .git/hooks/prepare-commit-msg /tmp/ 
tr -d ‘\r’ < /tmp/prepare-commit-msg > .git/hooks/prepare-commit-msg

cp .git/hooks/commit-msg /tmp/
tr -d ‘\r’ < /tmp/commit-msg > .git/hooks/commit-msg

如果发现还是有问题,很有可能是自己本地的IDE或者类似的工具进行了操作,可以重新拉取一下代码,重新尝试提交.