Как мне использовать Git Flow, чтобы объединить некоторые (не все) функциональные ветви уже в Develop? - PullRequest
2 голосов
/ 13 апреля 2019

Я использую Git Flow для организации своего рабочего процесса.Иногда мы сталкиваемся с проблемой, когда функции объединяются в ветку разработки и развертываются в стадии подготовки.

Но тогда клиенту нужны только некоторые из принятых функций.На данный момент у нас есть проблема, так как я не могу объединить превращение в мастер, поскольку в нем есть функции, которые клиент пока не хочет использовать в производстве.

В качестве примера, скажем, у меня есть 4 ветви.master develop feature-1 и feature-2.master - текущее состояние производства.develop является текущим состоянием подготовки и используется в качестве отправной точки для новых функций.

Допустим, разработчик работает на feature-1 они выполнены, запрос на слияние обратно в develop клиент принимаетновый функционал, и он готов к дальнейшему тестированию интеграции.Теперь они начинают работать над feature-2 той же историей, что и раньше.

Клиент приходит и говорит, что мне нужно feature-2 жить, но не feature-1.На данный момент мы находимся в рассоле, так как feature-2 уже имел коммиты feature-1.

То, что я придумал:

  • Скажите клиенту, неудача feature-1 также необходимо развернуть (клиент не доволен)
  • Отделение master и вишня подберите feature-2 в нее (eeew)
  • Удалите ветку develop и используйте ветку master только для функций, которые необходимо запустить в производство.Проблема здесь заключается в более сложных интеграционных тестах, функции которых зависят друг от друга (клиентам иногда требуется много времени для ответа / тестирования, пока продолжается разработка).

Я ищу способ изменить свой рабочий процесс, чтобы некоторые ветви функций могли быть объединены с главной, но не все.В то же время я не хочу мешать своим разработчикам не объединять функции с разработкой, поскольку в большинстве случаев разработка идет очень быстро, и функции могут зависеть от других функций.

1 Ответ

1 голос
/ 13 апреля 2019

Я вижу здесь два варианта, и вы упомянули один из них:

  1. Отвечая на ваш вопрос, вы можете использовать Поток GitHub или Поток GitLab используя, дляНапример, только мастер для непосредственного объединения функций без ветки разработки, но имхо (мы также используем GitFlow) вам нужны опытные разработчики, и я не знаю, стоит ли вам затрачивать на изучение нового рабочего процесса.
  2. Даже если это не совсем то, о чем вы просите, я бы выбрал Пометка функций , которая позволяет вам развернуть, когда вы хотите, отпустить, когда вы будете готовы .Новые функции объединены в master из develop и могут быть активированы отдельно во время выполнения с помощью флагов.Таким образом, вы можете включить feature-2, но не feature-1, который будет развернут.В Launchdarkly есть SDK с открытым исходным кодом , хотя вы также можете реализовать их самостоятельно.
...