在服务器上,/ 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: '.'
有什么想法吗?
答案 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