Git 提交后/接收后钩子不起作用

Git 提交后/接收后钩子不起作用

我在一台服务器上有一个 Git repo。我希望每当管理员将更改推送到 git repo 时,这些更改可能会自动部署到托管 git repo 的同一台服务器上的文件夹中。

由于我的 repo 位于 /opt/myrepo.git ,因此我创建了脚本 /opt/myrepo.git/hooks/post-commit 。

当我在 repo 上执行任何提交时,上述脚本都应该运行,但它没有运行。我在其中编写了简单的 Echo 命令来测试它对文件的输出,但它根本没有运行。

答案1

对于推送,您应该使用后接收钩子而不是后提交钩子。

由于命名习惯奇怪,我也犯了同样的错误

答案2

除了使用后挂钩之外,您还应确保您的挂钩文件是可执行的。因此,请查看文件权限,确保您已将文件的 chmode 设置为 a+x。

chmod a+x post-receive

post-receive 钩子应该可由 git 执行。如果不可执行,git 不会通知您。

另外,确保第一行是 #!/bin/sh

希望这可以帮助

相关内容