无法拉入git hook(bash脚本)

时间:2013-05-07 19:43:18

标签: git bash ubuntu githooks

我正在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设置的帐户拉到本地存储库。

有什么想法吗?我根本没有快乐。

1 个答案:

答案 0 :(得分:1)

如果/var/www/www.foo.net/是有效的git repo,请尝试


git --git-dir=/var/www/www.foo.net/.git --work-tree=/var/www/www.foo.net pull 

这会导致FF拉。