git pull in hooks / post-receive失败

时间:2012-05-29 09:53:27

标签: git githooks git-pull git-post-receive

在服务器上,/ home / git / xxx / hooks / post-receive:

#!/bin/bash

cd /var/www/xxx
git pull

在服务器上,/ var / www / xxx的创建方式如下:

cd /var/www
git clone /home/git/repositories/xxx.git

当我在客户端上运行“git push”时,收到了以下消息:

remote: fatal: Not a git repository: '.'

有什么想法吗?

4 个答案:

答案 0 :(得分:5)

正如here所述,问题是在调用挂钩时GIT_DIR设置为.

如果你在post-receive挂钩中取消设置GIT_DIR,它应该可以工作:

#!/bin/bash

unset GIT_DIR
cd /var/www/xxx
git pull

答案 1 :(得分:1)

根据您的评论,您希望在将更改推送到Git存储库时自动更新网站。试试这个:http://www.ekynoxe.com/automated-deployment-on-remote-server-with-git/

请注意,网站根目录(/var/www/xxx)本身不是Git存储库;它只保存工作树。

答案 2 :(得分:0)

您缺少拉出的目录

cd /var/www
git clone /home/git/repositories/xxx.git

上面的命令将在 / var / www 下创建一个新目录作为xxx,前提是您的应用程序名称为xxx。

现在你需要进入这个新创建的目录,如

cd /var/www/xxx

现在运行命令“git push”。这应该有用。

答案 3 :(得分:0)

Repositories文件夹应该是裸存储库。

git init --bare