繁体   English   中英

无法在gitolite接收后挂钩中执行git命令

[英]Can't execute git commands in gitolite post-receive hook

我真的不知道为什么会这样。

在我的系统中,我使用了gitolite的“ git”用户。 所有的git仓库,用户和仓库的权限都可以正常工作,看来gitolite至少在基本用途上都可以配置。

现在,我需要在使用gitolite的计算机上设置Web服务器,设置apache,并与git用户一起,在www目录中克隆一个存储库,以便可以通过浏览器访问文件。

克隆完全没有问题,我也可以手动执行git pull和git将从存储库中拉出。

问题是,当我每次用户推送时尝试将项目自动部署到www目录时。 我写了一个〜/ .gitolite / hooks / common / post-receive脚本,代码如下:

#!/bin/sh
dir=/var/www/onlinerepo
if [ ! -d $dir ] ; then
        echo "the directory $dir does not exist"
        exit 1
fi

cd $dir
git pull
touch DONE

我还做了一个gl-setup ,将脚本传播到所有存储库。 当用户推送时,我确定脚本已执行,因为我看到/ var / www / onlinerepo / DONE文件被写入,但是没有执行git pull 我试图查看执行git pull >> OUTPUT的命令的输出,但是它只会创建一个空文件。

如果我通过命令行执行git pull命令,或者即使我从命令行手动执行了接收后脚本,我也会看到通常的“已更新”信息消息。

难道我做错了什么? 我真的不明白为什么git pull是脚本中唯一失败的命令。

我解决了更改git pull的问题

env -i git pull ssh://git@localhost/home/git/repositories/myrepo.git

暂无
暂无

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

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