1

我的英文不是很好。请多多包涵。

我在stackoverflow和google上搜索过这个问题。但也无法解决这个问题。

我只是想通过 git hooks 构建一个自动部署环境。但它不起作用。

我在一台计算机上使用 Ubuntu 12.04 服务器作为服务器,我称之为PC-Ser。我在另一台计算机上使用 Windows 7 PC 作为客户端,我称之为PC-C

我在PC-Ser上安装 gitolite :

  1. apt-get 安装 gitolite
  2. addgroup gitolite
  3. adduser --disabled-password --home /home/gitolite --ingroup gitolite gitolite
  4. su gitolite
  5. gl-setup /tmp/user.pub

然后我

"git clone gitolite@PC-Ser:gitolite-admin"

PC-C上。

我通过编辑 gitolite.conf 文件创建了一个名为 autoDeploy 的存储库并推送它。这是gitolite.conf

repo    gitolite-admin
        RW+ = admin

repo    autoDeploy
        RW+ = @all

之后,我在PC-Ser上做了一些事情:

cd /var/www
git clone /home/gitolite/repositories/autoDeploy.git

然后我编辑/home/gitolite/repositories/autoDeploy.git/hooks/post-receive

#!/bin/bash
cd /var/www/autoDeploy
pwd >> /log/pwd.log
git push /home/gitolite/autoDeploy>> /log/push.log 2>&1
echo "finish" >> /log/finish.log
whoami >> /log/user.log

然后,我在PC-C .autoDeploy 上创建了一个 test.txt 并推送它。

但是 /var/www/autoDeploy 没有拉。它不起作用。

PC-Ser的日志上有这个:

/log/pwd.log:

/var/www/autoDeploy

/log/push.log:

fatal: Not a git repository: '.'

/log/finish.log:

finish

/log/user.log:

gitolite

我尝试通过 root 运行 /home/gitolite/repositories/autoDeploy.git/hooks/post-receive,它成功了,/var/www/autoDeploy 已撤消。

然后我“su gitolite”并运行/home/gitolite/repositories/autoDeploy.git/hooks/post-receive,它也是成功的。没有错误。/var/www/autoDeploy 已经成功。

请帮助我。非常感谢!

4

0 回答 0