Ошибка git pull in hooks/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: '.'

Есть идеи?


person tgf    schedule 29.05.2012    source источник
comment
Можете ли вы упомянуть выше, какой из них является клиентом, а какой сервером? Я запутался!   -  person positron    schedule 29.05.2012
comment
Можете ли вы опубликовать полный вывод из git push? Неясно, вызвано ли сообщение об ошибке ошибкой клиента или ошибкой сервера.   -  person ellotheth    schedule 29.05.2012


Ответы (4)


Согласно вашему комментарию, вы хотите автоматически обновлять веб-сайт, когда изменения передаются в репозиторий Git. Попробуйте это: http://www.ekynoxe.com/automated-deployment-on-remote-server-with-git/

Обратите внимание, что корневой каталог веб-сайта (/var/www/xxx) сам по себе не является репозиторием Git; он просто содержит рабочее дерево.

person ellotheth    schedule 29.05.2012
comment
ссылка битая :-/ - person Geob-o-matic; 08.02.2018

Как описано здесь, проблема в том, что GIT_DIR устанавливается в . при вызове хука.

Если вы отключите GIT_DIR в хуке post-receive, он должен работать:

#!/bin/bash

unset GIT_DIR
cd /var/www/xxx
git pull
person seb    schedule 08.11.2014

Вам не хватает вытащенного каталога,

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

Приведенная выше команда создаст новый каталог в /var/www как xxx, при условии, что имя вашего приложения xxx.

Теперь вам нужно перейти в этот недавно созданный каталог, например,

cd /var/www/xxx

Теперь запустите команду «git push». Это должно работать.

person Umesh Aawte    schedule 29.05.2012
comment
Я думаю, что я не заставил себя понять. Мой английский оставляет желать лучшего. - person tgf; 29.05.2012
comment
У меня есть сервер git, который одновременно является веб-сервером. Проект под управлением git — это веб-сайт. Я хочу, чтобы каждый раз, когда я отправляю изменения с моего рабочего ПК на сервер, веб-сайт автоматически обновлялся. - person tgf; 29.05.2012

Папка репозиториев должна быть голым репозиторием.

git init --bare
person vanarajcs    schedule 14.11.2014