繁体   English   中英

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

[英]Not being able to pull in a git hook (bash script)

我正在Ubuntu 12.04服务器上的网站上工作。 当我将代码推送到我的网站时,我希望我的钩子自动pull代码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一起设置的帐户来拉到本地存储库。

有任何想法吗? 我一点都没有喜悦。

如果/var/www/www.foo.net/是有效的git repo try

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

这将导致FF拉动。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM