git post-update 挂钩有一个奇怪的问题。我在我的服务器 ( /var/www/vhosts/git/master.git
) 上创建了存储库,并在此存储库中添加了一个更新后挂钩,其中包含以下代码:
#!/bin/sh
echo $1
echo "*UPDATE*"
case " $1 " in
*'refs/heads/master'*)
GIT_WORK_TREE=/var/www/vhosts/website.com/sandbox.website.com git checkout -f
echo
echo "Master was updated!"
echo
;;
esac
case " $1 " in
*'refs/heads/sandbox'*)
GIT_WORK_TREE=/var/www/vhosts/website.com/sandbox.website.com git checkout -f
echo
echo "Sandbox was updated!"
echo
;;
esac
我确保这个文件是可执行的。然后我在我的机器上创建了一个本地存储库,使用:
$ mkdir website && cd website
$ git init
$ echo 'Testing.' > index.html
$ git add index.html
$ git commit -q -m "Initial commit"
$ git remote add web ssh://username@website.com/var/www/vhosts/website.com/git/master.git
$ git push web +master:refs/heads/master
无论出于何种原因,第一次推送都可以正常工作 - <code>/var/www/vhosts/website.com/sandbox.website.com 使用索引文件进行更新 - 但随后的推送都不起作用。post-update
我从“Master 已更新!”的钩子中得到响应。但该目录实际上并没有得到更新。
建议?