Develop Branch — це основна інтеграційна гілка в Git Flow, в яку зливаються всі завершені feature гілки перед підготовкою релізу. На відміну від main, develop містить найновіші, але ще не випущені зміни — тут відбувається щоденна інтеграція коду від усіх розробників команди. За даними Atlassian, 2024, develop є обов'язковою гілкою в Git Flow і забезпечує стабільне інтеграційне середовище для команди.
Головне
Develop Branch (гілка розробки) — це довгоживуча гілка в Git Flow, яка служить центральним вузлом для інтеграції коду від усіх розробників. У неї зливаються feature гілки після завершення розробки та проходження код-рев'ю.
Код у develop завжди знаходиться в стані, готовому до створення релізу, хоча ще не випущений у продакшн. Це означає, що всі функції в develop пройшли рев'ю, тестування та інтеграційні перевірки, але ще очікують свого релізного циклу.
На відміну від main, де кожна версія коду — це реліз, develop містить безперервний потік змін. Коміти в develop з'являються в міру злиття feature гілок, що може відбуватися кілька разів на день.
За даними Vincent Driessen, 2010, develop є ключовим елементом успішної моделі гілкування, оскільки відокремлює чернову роботу від готових до випуску версій.
Розуміння відмінностей між develop та main критично важливе для правильної роботи в Git Flow. Ці гілки виконують різні функції та мають різні вимоги до стабільності.
| Характеристика | Develop | Main / Master |
|---|---|---|
| Призначення | Інтеграція нових функцій | Стабільний релізний код |
| Стабільність | Висока (після тестів) | Максимальна (продакшн) |
| Частота комітів | Щоденно (злиття feature) | За релізами (раз на 1-4 тижні) |
| Джерело гілок | Від неї створюються feature | Від неї створюються hotfix |
| Злиття | З feature через PR | З release через merge |
Розділення на develop та main дозволяє команді безперервно інтегрувати новий код, не ризикуючи стабільністю продакшен-версії. Розробники можуть бачити свій код у develop одразу після затвердження PR, навіть до офіційного релізу.
У моделі Git Flow develop займає центральне місце між feature гілками (джерело змін) та release гілками (підготовка до випуску). Розуміння цієї ієрархії — основа ефективного гілкування.
Така структура гарантує, що develop завжди містить останню версію коду з усіма новими функціями, а main — тільки перевірений продакшен-код. Це особливо важливо для мобільних проектів з тривалим циклом рев'ю в App Store та Google Play.
Develop виступає центральною ланкою між feature, release та hotfix гілками. Розуміння напрямків злиття — основа для запобігання конфліктам та втраті комітів.
Якість коду в develop має бути високою, але не абсолютною. На відміну від main, де кожна помилка означає терміновий hotfix, develop допускає незначні недоробки, які будуть виправлені до релізу.
Мінімальні вимоги до коду перед злиттям у develop:
Автоматичні перевірки в CI/CD пайплайні мають запускатися на кожен push у develop. Якщо збірка ламається, відповідальний розробник зобов'язаний виправити проблему протягом години або відкотити свій коміт.
Налаштування GitHub Actions для develop гарантує, що кожен PR перед злиттям проходить автоматичну перевірку. Типовий пайплайн включає збірку, тести та лінтинг.
# GitHub Actions — перевірка develop після злиття
name: Develop CI
on:
pull_request:
branches: [develop]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Unit tests
run: ./gradlew testDebug
- name: Lint
run: ./gradlew lint
- name: Build
run: ./gradlew assembleDebug
Злиття в develop має підкорятися строгим правилам, щоб підтримувати стабільність інтеграційної гілки. Порушення цих правил веде до конфліктів, зламаних збірок та втрати часу команди.
Правило актуальності PR особливо важливе. Якщо feature гілка створена тиждень тому, а develop пішов вперед на 50 комітів, пряме злиття може призвести до конфліктів, які краще вирішити в контексті PR, а не в develop.
Branch protection rules (правила захисту гілки) — це налаштування на рівні GitHub, GitLab або Bitbucket, які запобігають некоректним змінам у develop. Вони гарантують, що навіть випадковий push не зламає інтеграційну гілку.
Рекомендовані правила захисту для develop:
Налаштування захисту develop займає 10 хвилин, але запобігає тижням простоїв, пов'язаних зі зламаною інтеграційною гілкою. Для мобільних проектів з багатоплатформними командами це особливо актуально.
Розглянемо типовий день розробника: вранці він оновлює develop, створює нову feature гілку, а після завершення задачі зливає зміни назад у develop.
# Ранкова синхронізація develop
git checkout develop
git pull origin develop
# Створення нової feature гілки від develop
git checkout -b feature/add-push-notifications
# Робота над функцією...
git add . && git commit -m "Add FCM integration"
# Оновлення develop під час розробки
git fetch origin develop
git rebase origin/develop
# Після затвердження PR — оновлення локального develop
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications
Команда git pull у develop виконує одразу дві операції: git fetch (забирає нові коміти з сервера) та git merge (зливає їх з локальною гілкою). Для develop це стандартний спосіб синхронізації.
Якщо в develop потрапив код, який зламав збірку, діяти потрібно швидко. Кожна година простою develop — це заблокована робота всієї команди розробників.
Якщо в develop потрапив код, який зламав збірку, використовуйте git revert для створення нового коміту, що скасовує проблемні зміни. Не використовуйте git reset у develop — це переписує історію, яка вже є в інших учасників.
# Пошук проблемного коміту
git log --oneline develop
# Скасування коміту через revert (безпечно)
git revert a1b2c3d
# Відправка виправлення у віддалений develop
git push origin develop
# Перегляд змін у конкретному коміті
git show a1b2c3d --stat
Часті запитання
Для проектів з одним-двома розробниками develop часто надлишкова — достатньо main та feature гілок. Як тільки команда виростає до 3+ осіб, develop стає необхідною для ізоляції незавершених функцій від стабільного продакшен-коду.
Ні, прямий запис у develop заборонений у будь-якому професійному проекті. Всі зміни проходять через Pull Request з код-рев'ю та автоматичними перевірками. Виняток — адміністративні правки README або CI-конфігурації, але й їх краще робити через PR.
У trunk-based development немає окремої develop гілки — всі розробники працюють у main з дуже короткими feature гілками (1-2 дні). Це альтернатива Git Flow, популярна в DevOps-культурі з високим рівнем автоматизації тестування.
Після кожного релізу release гілка зливається назад у develop, щоб внести в неї всі виправлення, зроблені в процесі підготовки релізу. Якщо цього не робити, develop буде відрізнятися від релізного коду, що викличе конфлікти при наступному релізі.
Якщо develop зламано, старший розробник створює hotfix гілку від останнього стабільного коміту, виправляє проблему та зливає fix напряму в develop через PR з особливим статусом. Після відновлення проводиться аналіз причини поломки.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також