Я пытаюсь понять, как использовать git для развертывания сайта.
Теоретически есть 3 связи:
я git push
мой код от [локальный компьютер] к [гитолитный сервер] но как мне протолкнуть свой код из [гитолит] к моему [веб сервер]
Я хотел бы автоматизировать это, поэтому все, что мне нужно сделать, это завершить git push
.
Лучший способ установить крючок на [gitolate server] репо для запуска post-update
или post-receive
сценарий? Но поскольку это --bare
репо означает, что мне нужно запустить git push
из [гитолитный сервер] к [веб сервер]клонированного репо, так как я не могу запустить git pull
так как --bare
у репо нет рабочего дерева?
Извините и заранее спасибо
WD
Одно из решений:
Затем вы отправляете gitolite, он отправляется на веб-сервер, который затем развертывает ваш новый код. Готово!
В качестве альтернативы вы можете исключить репозиторий git на веб-сервере из уравнения и заставить обработчик gitolite post-receive делать что-то вроде:
git archive --format=tar master | (ssh -i $KEYFILE user@webserver tar -x -C /dest/dir )
который будет выполнять развертывание прямо с крюка гитолита. Предполагается, что вы можете подключиться по ssh к веб-серверу как «пользователь», у которого есть закрытый ssh-ключ в $ KEYFILE, что может иметь некоторые разветвления безопасности, поскольку любой, кто может прочитать ловушку gitolite, может получить эти значения.