Я пытаюсь настроить центральное хранилище, которое будет автоматически отправлено в другое хранилище, когда оно будет отправлено с моего локального компьютера.Я уже несколько дней гуглю и пробовал каждую комбинацию команд, которую смог найти безуспешно.
Настройка: сначала я создал центральное хранилище как голое, а затем клонировал его на второй компьютер какне голый.Я добавил вторую машину как удаленную, называемую «www», к первой машине.Я подтвердил, что могу выполнить «git push www master» вручную с первого компьютера, а второй обновится через SSH.Затем я клонировал репозиторий на мою локальную машину разработки через HTTP.Я могу просто переместиться с локального на центральный.
Мой хук после обновления в его текущей форме:
#!/bin/bash
cd /var/git_repos/site.git
unset $(git rev-parse --local-env-vars)
branch=$(git rev-parse --abbrev-ref HEAD)
if [ "$branch" == "master" ];
then
echo "Pushing $branch to www..."
env -i git push www master
fi
exec git update-server-info
Я собрал это воедино из различных SO и постов в блоге.Он отлично работает, когда выполняется вручную из CLI первого компьютера ("cd /var/git_repos/site.git/hooks; ./post-update"), но я получаю сообщение об ошибке "www не является Git-репозиторием" при выполнениикак крючок.
Вывод:
$ git push
Password:
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 264 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Pushing master to www...
remote: fatal: 'www' does not appear to be a git repository
remote: fatal: The remote end hung up unexpectedly
To https://xxx@git.xxx.xxx/site.git
e3d3a1d..103c819 master -> master
Может кто-нибудь сказать мне, что я делаю не так?
Редактировать: Я разобралсячто моя первоначальная проблема заключалась в том, что разрешения на site.git были установлены не совсем правильно.Исправив эту проблему, у меня появилась новая проблема.
Новый вывод:
$ git push
Password:
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 332 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: I am apache <---- Output of "whoami" for debugging
remote: Pushing master to www...
remote: ssh: connect to host 192.168.1.79 port 22: Permission denied
remote: fatal: The remote end hung up unexpectedly
To https://nnn@git.nnn.nnn/site.git
29d504c..f14f201 master -> master
Я безуспешно пытался добавить следующее в мой файл / etc / sudoers:
apache ALL=NOPASSWD: /usr/bin/ssh