钩子的msysgit错误:"git错误:无法生成.git/hooks/post-commit:没有这样的文件或目录"

Mat*_*att 44 windows git msysgit

我无法通过msysgit(Windows 7 Pro/32和Ultimate/64)正确使用post-recieve和post-commit hooks.对于post-commit钩子,如果我从git-bash或控制台提交,我会得到上面的错误,但是如果我通过git-gui提交它会正常工作.对于后接收钩子,所有三个都给出了相同的错误.

我认为这是某种许可或路径错误,但是没有任何线索从何处开始.

man*_*lds 79

将SHEBANG添加到第一行钩子,如下所示:

#!/bin/sh
echo "executing post-commit"
exit 0
Run Code Online (Sandbox Code Playgroud)

这让我有点困难,我看到添加了shebang固定它.在SVN世界中,在*nix中我们有一个"预提交"脚本,在Windows中我们有"pre-commit.bat",SVN自动在Windows中获取bat文件.Git似乎没有拿起pre-commit.bat(或任何钩子)并将shebang添加到钩子文件中.

  • 他的意思是第一行。我不小心在顶部有一个空的换行符,并得到了同样的错误。 (3认同)

Jar*_*ith 7

我正在使用SourceTree和git LFS并遇到类似的问题:cannot spawn .git/hooks/pre-push.

修复是删除pre-push文件(打开它显示它被严重损坏)并重新启动SourceTree,此时它重新生成pre-push文件,一切都恢复正常.


Nic*_*son 6

如果你有SHEBANG并且它仍然失败,请确保 <path_to_git>在路径环境变量中设置了\ bin.

<path_to_git>如果您从命令行安装它,则可能还有\ cmd.