Я бачив гілки розробників, які використовуються в двох основних сценаріях:
Спільнота з відкритим кодом, де ці гілки є фактично виделками репозиторію, так що керівники проектів можуть заблокувати доступ до головного сховища та вимагати інтеграції через запити натягу. Це ускладнює життя для учасників, але набагато простіше для обслуговуючого персоналу, що, звичайно, саме в цьому, і це дуже вдала модель на GitHub.
Команди та організації, які не мають постійної інтеграції та нестабільності в їх розгортанні, або, що ще гірше, нестабільності в їх складі. Ці команди, як правило, намагаються використовувати гілки розробників як спосіб захисту стабільності основної лінії, і результат - як правило, - тривалий і дуже болісний період злиття до випуску з подальшим ще більш тривалим і болючим періодом стабілізації, який іноді відбувається не після виходу.
Я не хочу, щоб це було шахраєм щодо того, навіщо вам потрібен CI, але з вашого запитання видно, що ви знаєте, що ви не інтегруєте свої зміни досить часто, тому IMO немає сенсу танцювати навколо цієї проблеми.
Якщо ви насправді працюєте в географічно розподіленій команді, яка потребує "воріт" змін від сторонніх розробників, модель філії на розробника не має особливого сенсу. Це особливо не має сенсу з git, оскільки кожен розробник вже технічно має власне сховище. Більшість організацій мають інтегруватись дуже часто - як, наприклад, кілька разів на день.
Я зараз є частиною групи з близько 35 учасників, розділених на 4 окремі команди, більшість людей приїжджають принаймні 2-3 рази на день, деякі люди 10-15 разів; незвично бачити, як будівлі розбиті, і вкрай рідко вони залишаються зламаними більше декількох хвилин. Ручки Git зливаються настільки легко, що віддалені гілки розробників просто непотрібні. Просто потягніть, з’єднайте локально і запустіть тести на фіксацію, перш ніж натиснути, це просто.
Якщо вам абсолютно необхідно відкласти інтеграцію, щоб захистити стабільність головної гілки, типовою перевіреною моделлю є використання нестабільної гілки - іноді її називають галуззю розвитку , як описано в успішній моделі розгалуження Git . Якщо розробники не можуть успішно об'єднатись у цю галузь (яку потрібно будувати , а не працювати бездоганно) хоча б раз на день, то у вас є проблема якості / дисципліни, а не проблема контролю ревізії; прикриття його за допомогою використання неінтегрованих гілок розробників лише відкладає проблему, і, роблячи це, фактично робить можливі злиття набагато болючішими та нестабільнішими, ніж вони справді потребують.
Характеристики галузей не найгірші, але ІМО дуже мало проектів насправді достатньо великі, щоб їх надати; якщо ваш проект дуже великий (тобто багато функцій опрацьовується відразу), ви побачите кращі результати від розбиття його на окремі автономні компоненти, ніж ви отримаєте від розробки проблеми з керуванням джерелами.
Ви можете ігнорувати цю пораду, якщо хочете, і чимало команд, але одна з причин, що пов'язана вище модель розгалуження настільки популярна і успішна, що вона розроблена для роботи з постійною інтеграцією, а не проти неї.