Develop Branch — to je hlavní integrační větev v Git Flow, do které se slučují všechny dokončené feature větve před přípravou vydání. Na rozdíl od main, develop obsahuje nejnovější, ale dosud nevydané změny — zde probíhá každodenní integrace kódu od všech vývojářů v týmu. Podle údajů Atlassian, 2024 je develop povinnou větví v Git Flow a poskytuje týmu stabilní integrační prostředí.
Hlavní body
Develop Branch (vývojová větev) — je dlouhožijící větev v Git Flow, která slouží jako centrální uzel pro integraci kódu od všech vývojářů. Feature větve se do ní slučují po dokončení vývoje a absolvování code review.
Kód v develop je vždy ve stavu připraveném k vytvoření vydání, i když ještě nebyl publikován do produkce. To znamená, že všechny funkce v develop prošly review, testováním a integračními kontrolami, ale stále čekají na svůj cyklus vydání.
Na rozdíl od main, kde každá verze kódu je vydáním, develop obsahuje nepřetržitý tok změn. Commity v develop se objevují s postupným slučováním feature větví, což může nastat několikrát denně.
Podle údajů Vincent Driessen, 2010 je develop klíčovým prvkem úspěšného modelu větvení, protože odděluje rozpracovanou práci od verzí připravených k vydání.
Porozumění rozdílům mezi develop a main je kriticky důležité pro správnou práci v Git Flow. Tyto větve plní různé funkce a mají různé požadavky na stabilitu.
| Vlastnost | Develop | Main / Master |
|---|---|---|
| Účel | Integrace nových funkcí | Stabilní release kód |
| Stabilita | Vysoká (po testech) | Maximální (produkce) |
| Frekvence commitů | Denně (slučování feature) | Podle vydání (každé 1-4 týdny) |
| Zdroj větví | Z ní se vytvářejí feature | Z ní se vytvářejí hotfix |
| Sloučení | Z feature přes PR | Z release přes merge |
Rozdělení na develop a main umožňuje týmu průběžně integrovat nový kód bez rizika pro stabilitu produkční verze. Vývojáři mohou vidět svůj kód v develop ihned po schválení PR, ještě před oficiálním vydáním.
V modelu Git Flow zaujímá develop centrální místo mezi feature větvemi (zdroj změn) a release větvemi (příprava na vydání). Pochopení této hierarchie je základem efektivního větvení.
Taková struktura zaručuje, že develop vždy obsahuje nejnovější verzi kódu se všemi novými funkcemi, a main — pouze ověřený produkční kód. To je obzvláště důležité pro mobilní projekty s dlouhým cyklem review v App Store a Google Play.
Develop funguje jako centrální článek mezi feature, release a hotfix větvemi. Pochopení směrů slučování je základem prevence konfliktů a ztráty commitů.
Kvalita kódu v develop musí být vysoká, ale ne absolutní. Na rozdíl od main, kde každá chyba znamená naléhavý hotfix, develop umožňuje menší nedostatky, které budou opraveny před vydáním.
Minimální požadavky na kód před sloučením do develop:
Automatické kontroly v CI/CD pipeline by se měly spouštět při každém pushi do develop. Pokud se kompilace rozbije, odpovědný vývojář musí problém opravit do hodiny nebo vrátit svůj commit.
Nastavení GitHub Actions pro develop zaručuje, že každý PR před sloučením projde automatickou kontrolou. Typická pipeline zahrnuje kompilaci, testy a linting.
# GitHub Actions — kontrola develop po sloučení
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
Sloučení do develop musí podléhat přísným pravidlům pro udržení stability integrační větve. Porušení těchto pravidel vede ke konfliktům, rozbitým kompilacím a ztrátě času týmu.
Pravidlo aktuálnosti PR je obzvláště důležité. Pokud byla feature větev vytvořena před týdnem a develop postoupil o 50 commitů, přímé sloučení může vést ke konfliktům, které je lépe vyřešit v kontextu PR, ne v develop.
Branch protection rules (pravidla ochrany větve) — nastavení na úrovni GitHub, GitLab nebo Bitbucket, která zabraňují nesprávným změnám v develop. Zaručují, že ani náhodný push nerozbije integrační větev.
Doporučená pravidla ochrany pro develop:
Nastavení ochrany develop trvá 10 minut, ale předchází týdnům prostojů spojených s rozbitou integrační větví. Pro mobilní projekty s multiplatformními týmy je to obzvláště důležité.
Podívejme se na typický den vývojáře: ráno aktualizuje develop, vytvoří novou feature větev a po dokončení úkolu sloučí změny zpět do develop.
# Ranní synchronizace develop
git checkout develop
git pull origin develop
# Vytvoření nové feature větve z develop
git checkout -b feature/add-push-notifications
# Práce na funkci...
git add . && git commit -m "Add FCM integration"
# Aktualizace develop během vývoje
git fetch origin develop
git rebase origin/develop
# Po schválení PR — aktualizace lokálního develop
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications
Příkaz git pull v develop provádí současně dvě operace: git fetch (stahuje nové commity ze serveru) a git merge (slučuje je s místní větví). Pro develop je to standardní způsob synchronizace.
Pokud se do develop dostal kód, který rozbil kompilaci, je třeba jednat rychle. Každá hodina prostoje develop znamená blokovanou práci celého vývojářského týmu.
Pokud se do develop dostal kód, který rozbil kompilaci, použijte git revert k vytvoření nového commitu, který ruší problematické změny. Nepoužívejte git reset v develop — to přepisuje historii, která již existuje u ostatních účastníků.
# Nalezení problematického commitu
git log --oneline develop
# Zrušení commitu pomocí revert (bezpečné)
git revert a1b2c3d
# Odeslání opravy do vzdáleného develop
git push origin develop
# Zobrazení změn v konkrétním commitu
git show a1b2c3d --stat
Často kladené otázky
Pro projekty s jedním až dvěma vývojáři je develop často nadbytečný — stačí main a feature větve. Jakmile tým naroste na 3+ osob, develop se stává nezbytným pro izolaci nedokončených funkcí od stabilního produkčního kódu.
Ne, přímý zápis do develop je zakázán v jakémkoli profesionálním projektu. Všechny změny procházejí Pull Requestem s code review a automatickými kontrolami. Výjimkou jsou administrativní úpravy README nebo CI konfigurace, ale i ty je lepší dělat přes PR.
V trunk-based development neexistuje samostatná develop větev — všichni vývojáři pracují v main s velmi krátkými feature větvemi (1-2 dny). Toto je alternativa ke Git Flow, populární v DevOps kultuře s vysokou úrovní automatizace testování.
Po každém vydání se release větev sloučí zpět do develop, aby se do něj dostaly všechny opravy provedené během přípravy vydání. Pokud se tak nestane, develop se bude lišit od release kódu, což způsobí konflikty při příštím vydání.
Pokud je develop rozbitý, senior vývojář vytvoří hotfix větev z posledního stabilního commitu, opraví problém a sloučí opravu přímo do develop přes PR se zvláštním statusem. Po obnovení se provede analýza příčiny rozbití.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také