2

在服务器上,/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

4 回答 4

5

如此处所述,问题在于GIT_DIR设置.为何时调用钩子。

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

#!/bin/bash

unset GIT_DIR
cd /var/www/xxx
git pull
于 2014-11-08T10:36:44.607 回答
1

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

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

于 2012-05-29T17:36:52.170 回答
0

您缺少拉取的目录,

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

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

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

cd /var/www/xxx

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

于 2012-05-29T09:59:59.133 回答
0

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

git init --bare
于 2014-11-14T12:52:04.920 回答