Есть очень простая и удобная утилита для деплоя
Deployer. Создаёшь скрипт либо на сервере, либо прямо на своей локальной машине, в котором описываются шаги, которые надо сделать при деплое.
Deployer создаёт папки релизов в рабочем каталоге. Если у вас, например, сайт уже работает на основе одного из последних коммитов, то перед переходом на следующую версию кода, Deployer создаст новую папку релиза и развернёт туда ваше приложение. Если все шаги деплоя, которые вы опишете, пройдут успешно, Deployer переключит ваше приложение на новую версию.
При этом, вы ещё и откатиться всегда можете на предыдущий релиз всего через одну команду. В общем, очень удобно) Мне нравится. И получается почти-zero-downtime обновление.