Использование GIT-поток в многоступенчатой ​​развертывании

Рисует пробел с завершением моей схемы развертывания здесь. После публикации этого вопроса: Миграция производственной площадки без VCS вообще к Git , у меня есть сущность развертывания в местное репо.

Мой локальный сервер разработки имеет репозиторий Git-Flow на нем, что я могу нажать, и он будет обновлять внешний рабочий.

У меня есть мой репо, настроен с Git-Flow, и вот как выглядит пульт моего происхождения:

$ git remote show origin
* remote origin
  Fetch URL: ssh://user@host/var/git/dev/repo.git
  Push  URL: ssh://user@host/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://user@host/var/git/dev/staging.git
  Push  URL: ssh://user@host/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://user@host/var/git/dev/production.git
  Push  URL: ssh://user@host/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-поток в многоэтапном развертывании, были бы очень оценены.

23
задан Community 23 May 2017 в 12:00
поделиться