amazon ec2-Git post receive hook未在推送后运行



我有一个网站托管在亚马逊EC2实例上(运行Ubuntu 12.04)。我希望能够使用git将更改推送到服务器,然后使用post-rereceive挂钩在工作目录中结账。因此,在hooks目录中的服务器上,我有一个名为postreceive的文件,其中包含:

#!/bin/sh
GIT_WORK_TREE=/home/ubuntu/beta git checkout -f

该文件具有以下权限:-rwxrwxr-x(即它是可执行的)。

在我的本地机器上,当我推送到服务器上的git-reo时,推送成功,git-reo也会更新。然而,后接收挂钩没有运行。如果我手动运行钩子,它运行良好并更新工作目录。

git推送是通过SSH执行的,使用的用户与手动运行钩子的用户相同。

你知道为什么钩子不会自动运行吗?

谢谢。

我已经设置了一个本地相同的测试(即从本地文件夹克隆),它运行良好。

为了查看脚本是否被执行,我添加了一个简单的触摸,看看它是否修改了任何文件

我的邮件接收看起来像这个

#!/bin/sh
touch /Users/raven/git_tests/live/.git/hooks/i_ve_been_run
GIT_WORK_TREE=/Users/raven/git_tests/live git checkout -f

请确保您的钩子的名称恰好为post-receive,否则它将不起作用。

最新更新