5

我已经设置了GitLab并使用它来托管我的 Git 存储库。现在我要做的是设置一个post-receive钩子,以便我可以在一个名为的文件夹中进行开发,site_dev然后推送我的更改,以便它们自动拉入site文件夹中。

整个早上我一直在尝试让这个钩子工作,但是我没有运气在 Ubuntu Server 上运行 GitLab 执行任何命令,我知道该resque服务正在运行并且我的工作人员处于活动状态。

目前我有:

#!/bin/bash
LIVE="/var/www/teamnet"
# read oldrev newrev refname
# if [ $refname = "refs/heads/master" ]; then
  echo "===== DEPLOYING TO LIVE SITE ====="
  cd $LIVE || exit
  unset GIT_DIR
  git pull
  echo "===== DONE ====="
# fi

试图拉动我的更改。

我不确定我是否在这里做错了什么......所有文件夹都位于/var/www/同一服务器上的同一位置。是的,我已经chmod +x上钩了。

是的,我已经git init --barelive文件夹运行并将源设置为 Git 存储库。但是我有点困惑这个钩子应该放在哪里,live/dev 文件夹?

4

1 回答 1

2

使用GitLab使用的Gitolite,您必须将您的接收后挂钩声明为 VREF(我在此处详细说明)。

这假设您.gitolite.rc包含一个LOCAL_CODE变量(请参阅此脚本),以便将您的 VREF 存储在您选择的目录中。

然后,您可以将该 VREF(它只是一个挂钩可执行文件)关联到存储库中的一个或多个存储gitolite.confgitolite-admin。(手动,因为通过 GitLab 没有接口)

于 2012-12-11T14:57:57.280 回答