Develop Branch — това е основният интеграционен клон в Git Flow, в който се сливат всички завършени feature клонове преди подготовката на релиз. За разлика от main, develop съдържа най-новите, но все още непубликувани промени — тук се осъществява ежедневна интеграция на код от всички разработчици в екипа. Според данни на Atlassian, 2024, develop е задължителен клон в Git Flow и осигурява стабилна интеграционна среда за екипа.
Основни точки
Develop Branch (клон за разработка) — дългоживеещ клон в Git Flow, който служи като централен възел за интеграция на код от всички разработчици. Feature клоновете се сливат в него след завършване на разработката и преминаване през code review.
Кодът в 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 с code review и автоматични проверки. Изключение — административни промени на README или CI конфигурация, но и тях е по-добре да се правят чрез PR.
В trunk-based development няма отделен develop клон — всички разработчици работят в main с много кратки feature клонове (1-2 дни). Това е алтернатива на Git Flow, популярна в DevOps култура с високо ниво на автоматизация на тестването.
След всеки релиз release клонът се слива обратно в develop, за да въведе в него всички корекции, направени по време на подготовката на релиза. Ако това не се направи, develop ще се различава от релизния код, което ще предизвика конфликти при следващия релиз.
Ако develop е счупен, старши разработчик създава hotfix клон от последния стабилен комит, поправя проблема и слива корекцията директно в develop чрез PR със специален статус. След възстановяване се извършва анализ на причината за повредата.
Резюме
Ще разработим мобилно приложение под ключ
IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.
Прочетете също