Я использую 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
только для функций, которые необходимо запустить в производство.Проблема здесь заключается в более сложных интеграционных тестах, функции которых зависят друг от друга (клиентам иногда требуется много времени для ответа / тестирования, пока продолжается разработка).
Я ищу способ изменить свой рабочий процесс, чтобы некоторые ветви функций могли быть объединены с главной, но не все.В то же время я не хочу мешать своим разработчикам не объединять функции с разработкой, поскольку в большинстве случаев разработка идет очень быстро, и функции могут зависеть от других функций.