我在一台服务器上有一个 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
希望这可以帮助