无法拉入git钩子(bash脚本)

问题描述:

我正在使用Ubuntu 12.04服务器上的网站。当我将代码推送到我的网站时,我希望我的钩子自动在我的apache文件夹中的代码pull。下面的命令更新我的网站,资料库目前的主人没有任何问题:无法拉入git钩子(bash脚本)

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

任何想法?我一点都不喜欢。

如果/var/www/www.foo.net/是一个有效的git回购尝试

 

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

这将导致在FF上拉。

+0

确实如此!你知道为什么其他的东西不起作用吗? – 2013-05-07 20:06:31