Мы принимаем новую ветвящуюся политику для работы с Agile и позволяем нам выпускать функциональные возможности по функциям, в результате чего у нас есть ветвь master
и ветвь как вечные ветви. Ночные сборки будут основаны на QA
, а выпуски будут получены от master
. Разработчики создадут ветку функций для каждой истории. Все ветви функций должны быть разветвлены master
, а затем объединены в QA
для тестирования, а затем слияние ветки функций в master
для последующего выпуска. Это нормально, до следующего сценария:Стратегия слияния Git для рабочего процесса Agile Branching
- Разработчик A («Род») не создал
feature/RodsFeature
, провели определенную работу и объединены вQA
(но неmaster
) - Разработчик Б («Джейн») создал
feature/JanesFeature
, провели определенную работу и сейчас пытается объединить вQA
- слияние конфликтов происходит сейчас Джейн, вызванные изменениями, внесенными в
QA
путем слияния Прута изfeature/RodsFeature
Если Джейн должна была обойти QA и объединить feature/JanesFeature
в master
, конфликтов не было бы feature/RodsFeature
еще не было в master
. Однако, по очевидным причинам, Джейн должна объединиться в QA
. Чтобы разрешить конфликт, она могла потянуть и интегрировать изменения Рода в свою ветку признаков, разрешить конфликты, а затем выполнить слияние - с нежелательным последствием того, что как только она объединит свою функциональную ветвь в master
, она также представит изменения Рода, которые все еще находятся на рассмотрении тестирования QA.
Итак, обходным решением было бы разрешить конфликты непосредственно на ветке , оставив функциональную ветку Джейн неповрежденной для последующего объединения в master
. Однако это нарушает правила проверки кода, так как слияния должны быть одобрены одноранговым партнером - путем этого она локально объединяется в QA
и выводится на удаленный доступ без какого-либо запроса на получение запроса или экспертной оценки.
Что будет считаться «лучшей практикой» в этой ситуации?
У нас была проблема с функцией 1 и особенность 2 объединяемых в QA отрасли, но имеют 1 отвергается и функция 2 время планируется к немедленному освобождению. Эта проблема была устранена путем изменения рабочего процесса, чтобы не объединять функции в QA/develop branch до их принятия! – Warpzit