стратегия ветвления gitflow - несколько выпусков - PullRequest
1 голос
/ 17 марта 2020

В настоящее время мы используем стратегию потока GitHub (функция разветвления). Однако, с этим проблема иногда заключается в том, что функции являются очередями для выпусков, т.е.

  1. . Я включил мою избранную ветку в разработку (или основную, только у нас) и развернул ее в тестовой среде для тестирования.
  2. Тем временем мы хотим разработать или исправить некоторые высокоприоритетные ошибки / функции. Я не могу сделать это, не возвращая ранее код из ветки разработки.

Чтобы решить эту проблему, я пытаюсь реализовать стратегию GitFlow Branching . Тем не менее, я думаю, что очень похожая проблема, как указано выше, может возникнуть, как указано ниже.

  • Я создал новую ветвь функций, сделал свою разработку и объединился для разработки
  • Мы объединили еще несколько функций для разработки
  • Вырежьте новую ветку релиза (давайте называется release-A), а затем развернуть его в тестовой среде для тестирования.
  • в то время как эта функция тестируется, поступил запрос новой функции, который имеет высокий приоритет
  • Теперь, если я перехожу из последней разработки, у нее есть другие функции (релиз-A), которые я не использую. не хочу развернуть в продукт. (или объединение с мастером)

Вопросы:

  • Вместо того, чтобы ветвиться в последнюю очередь, развивайте ветвь, если я должен переходить из коммита который находится в PROD?
  • если это так, я должен создать релиз из ветви функций?
  • как развернуть это в тесте, чтобы тестирование или то и другое (выпуск-A и эта новая функция могли происходить параллельно). Последний пункт не так важен.

Примечание: Я использую Microsoft Azure Фабрику данных, поэтому мне нужно объединить некоторые изменения для разработки ветки (связанные с Azure Фабрика данных), иначе я выиграл не сможет опубликовать sh эти изменения (не сможет создать шаблон ARM для развертывания в других средах)

Ответы [ 2 ]

0 голосов
/ 18 марта 2020

Теперь, если я выйду из последней разработки, у него есть другие функции (выпуск-A), которые я не хочу развертывать в prod

Проблема в том, что у вас есть один develop для нескольких выпусков: эта «интеграционная» ветвь (в которую вы интегрируете) нескольких ветвей функций становится грязной, потому что в итоге вы получаете «функции, которые вам не нужны»

Лучше всего иметь множественную интеграцию переходные ветки, то есть «разрабатываемые» ветки, созданные только для создания определенного выпуска c (как только это будет сделано, вы создаете новый выпуск для интеграции / разработки, чтобы интегрировать новый набор функций, или более старые ветви функций, которые не делали сокращение для предыдущего выпуска)

Хорошим примером такого подхода является gitworkflow (одно слово) .

0 голосов
/ 18 марта 2020

Отметьте https://nvie.com/posts/a-successful-git-branching-model, где модель ветвления хорошо визуализируется.

Если ваша новая высокоприоритетная функция должна вытеснять ReleaseA и go прямо в производство, я бы посчитал это исправлением, и поэтому я бы создал ветку исправлений из последней производственной версии. Разработайте эту функцию и протестируйте ее, а затем объединитесь прямо с мастером и с веткой разработки.

Функциональные ветви - это временные ветви, которые разветвляются и переходят только в разработку. Таким образом, вы никогда не создадите ветку релиза из ветви компонентов или объедините ветви функций непосредственно в production / master.

...