我有一个托管在Amazon EC2实例上(运行Ubuntu 12.04)的网站。我想要能够使用git推送更改到服务器,然后使用post-receive钩子在工作目录中进行检出。因此,在服务器上的hooks目录中,我有一个名为post-receive的文件,其中包含:
#!/bin/sh
GIT_WORK_TREE=/home/ubuntu/beta git checkout -f
文件的权限为:-rwxrwxr-x(即可执行)。
在我的本地机器上,当我将代码推送到服务器上的git仓库时,推送成功并更新了git仓库。然而,post-receive钩子没有运行。如果我手动运行钩子,它会正常运行并更新工作目录。
git push是通过SSH进行的,并使用与手动运行钩子相同的用户。
有任何想法为什么钩子不会自动运行吗?
谢谢。
bare repo/hooks/post-receive
中,对吗?(而不仅仅是在本地机器上的本地仓库中进行测试添加)。 - VonC