我正在一个网站上工作,在 Ubuntu 12.04 服务器上。当我将代码推送到我的网站时,我希望我的钩子自动pull
将代码放在我的 apache 文件夹中。以下命令将我的网站更新为存储库的当前主节点,没有任何问题:
cd /var/www/www.foo.net
git pull
我的post-update
钩子应该自动执行此操作,但每次推送时我都会收到相同的错误。请注意,推送每次都正确执行。脚本如下所示(省略了不相关的代码):
#!/bin/bash
BRANCH=$(git rev-parse --symbolic --abbrev-ref $1)
case "$BRANCH" in
"somebranch")
echo "You are pushing to somebranch!"
cd /var/www/www.foo.net
pwd
git pull
;;
esac
在我看来,这看起来应该可以工作,特别是考虑到调试输出是我所期望的。然而它不起作用。我总是得到以下输出:
remote: You are pushing to somebranch!
remote: /var/www/www.foo.net/
remote: fatal: Not a git repository: '.'
请注意它如何报告它位于正确的目录中,并且如上所述,我可以毫无问题地拉入该目录。/var/www/www.foo.net/
是一个 git 存储库。
我也尝试过使用( cd /var/www/www.foo.net/ ; git pull )
但无济于事。我也不认为它与权限有任何关系。我正在使用 Gitolite,并且能够通过使用 Gitolite 设置的帐户拉到本地存储库。
有任何想法吗?我一点也不快乐。