Нарисовать пробел с завершением моей схемы развертывания. После публикации этого вопроса: Перенос производственного сайта без VCS на Git, у меня есть суть развертывания в локальном репо.
У моего локального сервера разработки есть репозиторий git -flow, на который я могу нажать, и он обновит внешнюю рабочую строку.
У меня есть мое репо, настроенное с помощью git -flow, и вот как выглядит мой источник отдачи:
$ git remote show origin
* remote origin
Fetch URL: ssh://[email protected]/var/git/dev/repo.git
Push URL: ssh://[email protected]/var/git/dev/repo.git
HEAD branch (remote HEAD is ambiguous, may be one of the following):
develop
master
Remote branches:
develop tracked
master tracked
Local branch configured for 'git pull':
master merges with remote master
Local refs configured for 'git push':
develop pushes to develop (up to date)
master pushes to master (up to date)
То, что я попытался сделать, было настроено на 2 псевдо-среды. Один для постановки и один для производства. Я хочу, чтобы они вели себя следующим образом:
git push staging #pushes to remote staging repo with a post-receive hook "git checkout develop -f"
git push production #pushes to remote production repo with a post-receive hook "git checkout master -f"
Таким образом, мы можем развиваться локально и продвигаться к нашему маленькому внутреннему серверу развития и иметь всю историю. Затем, когда нам ясно, для постановки/производства, мы просто выталкиваем соответствующие ветки.
Я попробовал создать голые репозитории с отдельными рабочими деревьями, как я сделал с сервером разработки (см. мою ссылку в начале сообщения), и просто сделал:
git push staging develop
git push production master
И вот пульты, соответственно:
$ git remote show staging
* remote staging
Fetch URL: ssh://[email protected]/var/git/dev/staging.git
Push URL: ssh://[email protected]/var/git/dev/staging.git
HEAD branch: develop
Remote branch:
develop tracked
Local ref configured for 'git push':
develop pushes to develop (up to date)
$ git remote show production
* remote produdction
Fetch URL: ssh://[email protected]/var/git/dev/production.git
Push URL: ssh://[email protected]/var/git/dev/production.git
HEAD branch: master
Remote branch:
master tracked
Local ref configured for 'git push':
master pushes to master (up to date)
Итак, теоретически мы можем использовать git -flow внутри, отслеживать ветвь разработки и выталкивать ее для других отделов для просмотра /QA. Затем мы можем сделать свое освобождение внутренне, и нажимаем изменения на этап, а затем просто нажимаем ведущую ветвь на производство.
Я предполагаю, что мой вопрос: я собираюсь сделать это правильно? Я действительно начинаю, когда дело доходит до git и git -flow. Я просмотрел все доступные ресурсы, и это лучшее, что я мог придумать до сих пор.
Было бы полезно оценить любые мнения людей, которые используют git -flow в многоэтапном развертывании.