У меня есть проект PHP в репозитории BitBucket git.
Я работаю в ветке под названием «Разработка» для небольших исправлений или работаю в ветках временных функций. Когда я готов к развертыванию, я объединяю эти ветки в «мастер».
Я хочу максимально упростить развертывание на моем рабочем сайте (слияние с мастером и отправка в BitBucket).
Но я действительно не хочу, чтобы мой сервер имел какой-либо доступ к моему репозиторию, потому что это создает дополнительные проблемы с безопасностью. Если вы заботитесь о безопасности, вы хотите, чтобы ваш репозиторий находился в как можно меньшем количестве мест. Если ваш сервер будет скомпрометирован, это достаточно плохая ситуация, но было бы еще хуже, если бы злоумышленник получил доступ к моему полному репозиторию. Этот человек согласен.
Поэтому я предполагаю, что захочу использовать что-то вроде git archive master
, например https://stackoverflow.com/a/163769/470749 а> объясняет.
Как я могу настроить хук, который обнаруживает нажатие «мастера», а затем запускает git archive master
для экспорта последнего кода (но не в виде репо) в сжатый zip-файл, который затем отправляет (через SCP и/или Rsync?) на удаленный сервер, распаковывает его в новый каталог, а затем (возможно, путем изменения символической ссылки) указывает серверу на этот новый каталог?
Бонусный вопрос: как включить простой аварийный откат? (Я предполагаю, что могут быть ситуации, когда я хочу быстро вернуться к предыдущему коммиту.)