Git поддерживает Cherry Pick сливается . Этот метод позволит вам выбрать отдельные изменения и объединить их в другую ветку. Другой вариант - сделать интерактивную перебазировку желаемых изменений в другую ветку . Этот механизм позволит вам воспроизвести изменения из одной ветви (предпочтительно ветви функции или темы, которая не является общей для всей команды) в другую ветку.
Однако шаблон ветвей уровня продвижения немного устарел и не очень хорошо подходит для распределенной природы Git (в мире управления распределенными версиями, в какой среде, где слили код, где в мире). Вы можете посмотреть на ряд других моделей. Имея возможность выполнять двоичное продвижение (используя одни и те же байты для запуска в DEV, TEST и PROD), контейнеризацию (где даже инфраструктура хоста движется по этому пути), Infra как код и Config как код, позволяющие легко раскручивать среды, не нужно полагаться только на конвейер через фиксированный набор сред; это и способность git изолировать более мелкие ветви функций гораздо проще, чем в TFVC, старая модель ветвей уровня продвижения больше не соответствует требованиям. Извините; /
Microsoft недавно задокументировала Поток выпуска , облегченная модель, которая изолирует кандидатов на выпуск и выбирает последующие исправления по мере развития ветви.
GitHub также выпустил документацию по процессу ветвления / слияния. Они назвали это GitHub Flow .
Вероятно, вы также найдете множество ссылок на GitFlow, который был очень популярен и немного больше соответствует стратегии уровня продвижения. Тем не менее, многие люди медленно поворачиваются к нему спиной из-за долголетия ряда ветвей в этой модели и ее относительной сложности.
Причины для этой другой модели связаны с гораздо более простыми высокочастотными доставками, которые обеспечиваются этой моделью, и с большей уверенностью, что то, что вы тестировали в одной среде, совпадает с тем, что вы отпускаете в другой. Такие практики, как непрерывная интеграция и автоматическое тестирование, могут помочь обеспечить качество существующего кода, а внесение изменений, а также другие методы, такие как временные флаги функций, позволят вам выпустить работу, которая еще не завершена, при условии, что она остается выключенной. Следовательно, вместо того, чтобы пытаться полностью изолировать отдельные полусинтегрированные изменения от отдельных разработчиков, эти новые методы пытаются значительно увеличить интеграцию между разработчиками и быстрее, позволяя вам перемещать небольшие изменения быстрее. Изоляция достигается либо небольшой задержкой слияния, либо вообще не задерживается и достигается изоляция с помощью других механизмов.