Минуло два роки з часу останньої відповіді на це питання, і я думаю, зараз історія змінюється. Для мене відповідь - "Кожен раз, коли ви використовуєте управління вихідним кодом для відстеження версій".
Для розробки, відстеження версій проектів за допомогою керування вихідним кодом не завжди працює. (наприклад, використовуючи npm для управління залежністю та вкажіть семантичні версії за допомогою '^'). У цьому випадку артефакти проекту змінюються щоразу, коли відбувається складання, при цьому не потрібно відповідати змінам вихідного коду щоразу. Для вирішення подібних нових викликів деякі команди вирішили створити «артефакти», збережені в системі управління артефактами (наприклад, JFrog Artifactory) для трекових версій проекту.
Очевидно, що у вас вже є контроль версій артефактів, ви не перетягуватимете «виробничий код» з гілки GIT і не збиратиметесь / розгортаєте до виробництва, а замість цього звертаєтесь до системи управління артефактами для прямого запуску версій для розгортання. У таких випадках поняття "гілка випуску" раптово втрачає своє значення. І кожен раз, коли ваша команда вирішить не пов’язувати гіт-гілку з версією випуску, виконувати / наштовхувати безпосередньо на майстер стає знову обгрунтованим вибором: вона стає як гілка за замовчуванням всякий раз, коли репо клонується, отже, автоматично надається семантика загальновизнаною та добре передається зміни. Тим не менш, як свідчить прийнята відповідь, вам, ймовірно, слід очолити призначену роль галузям, включаючи головний, і використовувати ці гілки лише для тих конкретних ролей.
Нарешті, я проходжусь на крок далі і пропоную використовувати майстер як галузь розвитку в проектах, у яких є лише кілька основних комітетів. Це стосується моєї команди та, мабуть, однаково для більшості магазинів мікропослуг. Здійснення майстра знімає процес передачі змін і, можливо, уникає "злиття пекла" при роботі над функціями в декількох спринтах. Крім того, код у головній гілці навіть не повинен «працювати», автоматизований процес складання / тестування скаже вам, що пішло не так, і все одно досить просто перевірити історію git та зв’язатися з автором, який порушив збірку / тест :-)