我的英文不是很好。请多多包涵。
我在stackoverflow和google上搜索过这个问题。但也无法解决这个问题。
我只是想通过 git hooks 构建一个自动部署环境。但它不起作用。
我在一台计算机上使用 Ubuntu 12.04 服务器作为服务器,我称之为PC-Ser。我在另一台计算机上使用 Windows 7 PC 作为客户端,我称之为PC-C。
我在PC-Ser上安装 gitolite :
- apt-get 安装 gitolite
- addgroup gitolite
- adduser --disabled-password --home /home/gitolite --ingroup gitolite gitolite
- su gitolite
- 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 已经成功。
请帮助我。非常感谢!