Develop Branch — ez a fő integrációs ág a Git Flow-ban, amelybe az összes befejezett feature ág beleolvad a kiadás előkészítése előtt. A main-től eltérően a develop a legújabb, de még ki nem adott változtatásokat tartalmazza — itt történik a csapat összes fejlesztője kódjának napi integrációja. A Atlassian, 2024 adatai szerint a develop kötelező ág a Git Flow-ban, és stabil integrációs környezetet biztosít a csapat számára.
Főbb pontok
Develop Branch (fejlesztési ág) — egy hosszú életű ág a Git Flow-ban, amely központi csomópontként szolgál az összes fejlesztő kódjának integrációjához. A feature ágak a fejlesztés befejezése és a code review-n való átesés után olvadnak bele.
A develop-ban lévő kód mindig kiadásra kész állapotban van, bár még nem került kiadásra a termelésben. Ez azt jelenti, hogy a develop-ban lévő összes funkció átesett review-n, tesztelésen és integrációs ellenőrzéseken, de még vár a kiadási ciklusára.
A main-től eltérően, ahol minden kódverzió egy kiadás, a develop folyamatos változásáramlást tartalmaz. A commitok a develop-ban a feature ágak beolvadásával jelennek meg, ami naponta többször is megtörténhet.
Vincent Driessen, 2010 adatai szerint a develop egy sikeres elágazási modell kulcseleme, mivel elválasztja a folyamatban lévő munkát a kiadásra kész verzióktól.
A develop és a main közötti különbségek megértése kritikus fontosságú a Git Flow-ban való helyes munkához. Ezek az ágak különböző funkciókat látnak el, és eltérő stabilitási követelményekkel rendelkeznek.
| Jellemző | Develop | Main / Master |
|---|---|---|
| Cél | Új funkciók integrációja | Stabil kiadási kód |
| Stabilitás | Magas (tesztelés után) | Maximális (termelés) |
| Commitok gyakorisága | Napi (feature beolvadás) | Kiadásonként (1-4 hetente) |
| Ágak forrása | Belőle jönnek létre a feature | Belőle jönnek létre a hotfix |
| Beolvadás | Feature-ból PR-en keresztül | Release-ből merge-en keresztül |
A develop és main szétválasztása lehetővé teszi a csapat számára az új kód folyamatos integrációját anélkül, hogy kockáztatná a termelési verzió stabilitását. A fejlesztők láthatják a kódjukat a develop-ban közvetlenül a PR jóváhagyása után, még a hivatalos kiadás előtt.
A Git Flow modellben a develop központi helyet foglal el a feature ágak (változások forrása) és a release ágak (kiadás előkészítése) között. Ennek a hierarchiának a megértése a hatékony elágazás alapja.
Ez a struktúra garantálja, hogy a develop mindig a legújabb kódverziót tartalmazza az összes új funkcióval, a main pedig csak ellenőrzött termelési kódot. Ez különösen fontos a hosszú review-ciklusú mobil projekteknél az App Store-ban és a Google Play-ben.
A develop központi láncszemként működik a feature, release és hotfix ágak között. A beolvadási irányok megértése az alapja a konfliktusok és a commitok elvesztésének megelőzésének.
Kódminőség a develop-ban magas kell legyen, de nem abszolút. A main-től eltérően, ahol minden hiba sürgős hotfix-et jelent, a develop megengedi a kisebb hiányosságokat, amelyeket a kiadás előtt kijavítanak.
Minimális követelmények a kóddal szemben a develop-ba való beolvadás előtt:
Az automatikus ellenőrzések a CI/CD pipeline-ban minden push-kor futniuk kell a develop-ba. Ha a fordítás elromlik, a felelős fejlesztőnek egy órán belül meg kell javítania a problémát, vagy vissza kell vonnia a commitját.
A GitHub Actions beállítása a develop számára garantálja, hogy minden PR a beolvadás előtt automatikus ellenőrzésen megy keresztül. A tipikus pipeline tartalmazza a fordítást, teszteket és lintinget.
# GitHub Actions — develop ellenőrzése beolvadás után
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
Beolvadás a develop-ba szigorú szabályoknak kell alávetnie magát az integrációs ág stabilitásának fenntartása érdekében. E szabályok megsértése konfliktusokhoz, törött fordításokhoz és a csapat időveszteségéhez vezet.
A PR aktualitásának szabálya különösen fontos. Ha a feature ág egy hete jött létre, és a develop 50 commit-tal előrébb jár, a közvetlen beolvadás konfliktusokhoz vezethet, amelyeket jobb a PR kontextusában megoldani, nem a develop-ban.
Branch protection rules (ágvédelmi szabályok) — GitHub, GitLab vagy Bitbucket szintű beállítások, amelyek megakadályozzák a helytelen változtatásokat a develop-ban. Garantálják, hogy még egy véletlen push sem töri el az integrációs ágat.
Ajánlott védelmi szabályok a develop számára:
A develop védelmének beállítása 10 percet vesz igénybe, de megelőzi a törött integrációs ággal kapcsolatos hetekig tartó állásidőt. A többplatformos csapatokkal rendelkező mobil projekteknél ez különösen fontos.
Tekintsünk át egy tipikus fejlesztői napot: reggel frissíti a develop-ot, létrehoz egy új feature ágat, és a feladat befejezése után visszaolvasztja a változtatásokat a develop-ba.
# Reggeli develop szinkronizáció
git checkout develop
git pull origin develop
# Új feature ág létrehozása a develop-ból
git checkout -b feature/add-push-notifications
# Munka a funkción...
git add . && git commit -m "Add FCM integration"
# Develop frissítése fejlesztés közben
git fetch origin develop
git rebase origin/develop
# PR jóváhagyása után — helyi develop frissítése
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications
A git pull parancs a develop-ban egyszerre két műveletet hajt végre: git fetch (új commitok letöltése a szerverről) és git merge (egyesítés a helyi ággal). A develop esetében ez a szinkronizáció szokásos módja.
Ha olyan kód került a develop-ba, amely eltörte a fordítást, gyorsan kell cselekedni. A develop minden órányi állásideje a fejlesztői csapat egészének blokkolt munkáját jelenti.
Ha olyan kód került a develop-ba, amely eltörte a fordítást, használja a git revert-et egy új commit létrehozásához, amely visszavonja a problémás változtatásokat. Ne használja a git reset-et a develop-ban — ez felülírja a történetet, amely már más résztvevőknél is létezik.
# Problémás commit megtalálása
git log --oneline develop
# Commit visszavonása revert-tel (biztonságos)
git revert a1b2c3d
# Javítás küldése a távoli develop-ba
git push origin develop
# Változások megtekintése egy adott commit-ban
git show a1b2c3d --stat
Gyakran ismételt kérdések
Egy-két fejlesztős projekteknél a develop gyakran felesleges — elég a main és a feature ágak. Amint a csapat 3+ főre nő, a develop szükségessé válik a befejezetlen funkciók elkülönítésére a stabil termelési kódtól.
Nem, a közvetlen írás a develop-ba tilos bármely professzionális projektben. Minden változtatás Pull Request-en keresztül megy, code review-val és automatikus ellenőrzésekkel. Kivétel — a README vagy CI-konfiguráció adminisztratív módosításai, de azokat is jobb PR-en keresztül végezni.
A trunk-based development-ben nincs külön develop ág — minden fejlesztő a main-ben dolgozik nagyon rövid feature ágakkal (1-2 nap). Ez egy alternatíva a Git Flow-ra, amely a magas szintű tesztautomatizálással rendelkező DevOps kultúrában népszerű.
Minden kiadás után a release ág visszaolvad a develop-ba, hogy bekerüljenek a kiadás előkészítése során végzett összes javítás. Ha ez nem történik meg, a develop eltér a kiadási kódtól, ami konfliktusokat okoz a következő kiadásnál.
Ha a develop elromlott, a senior fejlesztő létrehoz egy hotfix ágat az utolsó stabil commitból, kijavítja a problémát, és közvetlenül a develop-ba olvasztja a javítást egy különleges státuszú PR-en keresztül. A helyreállítás után elemzést végeznek a hiba okáról.
Összegzés
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is