![Git 提交后/接收后钩子不起作用](https://linux22.com/image/631598/Git%20%E6%8F%90%E4%BA%A4%E5%90%8E%2F%E6%8E%A5%E6%94%B6%E5%90%8E%E9%92%A9%E5%AD%90%E4%B8%8D%E8%B5%B7%E4%BD%9C%E7%94%A8.png)
我在一台服务器上有一个 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
希望这可以帮助