Develop Branch ist der Hauptintegrationsbranch in Git Flow, in den alle abgeschlossenen Feature-Branches vor der Vorbereitung eines Releases gemergt werden. Im Gegensatz zu main enthält develop die neuesten, aber noch nicht veröffentlichten Änderungen — hier findet die tägliche Code-Integration aller Teamentwickler statt. Laut Atlassian, 2024 ist develop ein obligatorischer Branch in Git Flow und bietet eine stabile Integrationsumgebung für das Team.
Wichtige Erkenntnisse
Develop Branch (Entwicklungsbranch) ist ein langlebiger Branch in Git Flow, der als zentraler Knotenpunkt für die Code-Integration aller Entwickler dient. Feature-Branches werden nach Abschluss der Entwicklung und Code-Review in ihn gemergt.
Code in develop ist immer in einem Zustand, der für die Erstellung eines Releases bereit ist, obwohl er noch nicht in Produktion bereitgestellt wurde. Das bedeutet, dass alle Funktionen in develop Review, Tests und Integrationsprüfungen durchlaufen haben, aber noch auf ihren Release-Zyklus warten.
Im Gegensatz zu main, wo jede Code-Version ein Release ist, enthält develop einen kontinuierlichen Strom von Änderungen. Commits in develop erscheinen, wenn Feature-Branches gemergt werden, was mehrmals täglich geschehen kann.
Laut Vincent Driessen, 2010 ist develop ein Schlüsselelement eines erfolgreichen Branching-Modells, da es Entwurfsarbeit von releasebereiten Versionen trennt.
Die Unterschiede zwischen develop und main zu verstehen, ist für einen korrekten Git Flow-Workflow entscheidend. Diese Branches haben unterschiedliche Funktionen und unterschiedliche Stabilitätsanforderungen.
| Merkmal | Develop | Main / Master |
|---|---|---|
| Zweck | Integration neuer Funktionen | Stabiler Release-Code |
| Stabilität | Hoch (nach Tests) | Maximal (Produktion) |
| Commit-Häufigkeit | Täglich (Feature-Merge) | Pro Release (alle 1-4 Wochen) |
| Branch-Quelle | Davon werden Feature erstellt | Davon werden Hotfix erstellt |
| Merge | Von Feature per PR | Von Release per Merge |
Die Aufteilung in develop und main ermöglicht es dem Team, kontinuierlich neuen Code zu integrieren, ohne die Stabilität der Produktionsversion zu gefährden. Entwickler können ihren Code in develop sofort nach PR-Genehmigung sehen, noch vor der offiziellen Veröffentlichung.
Im Git Flow-Modell nimmt develop eine zentrale Stellung zwischen Feature-Branches (Quelle der Änderungen) und Release-Branches (Vorbereitung für Release) ein. Das Verständnis dieser Hierarchie ist die Grundlage für effektives Branching.
Diese Struktur stellt sicher, dass develop immer den neuesten Code mit allen neuen Funktionen enthält, während main nur verifizierten Produktionscode enthält. Dies ist besonders wichtig für Mobilprojekte mit langen Review-Zyklen im App Store und Google Play.
Develop fungiert als zentrale Verbindung zwischen Feature-, Release- und Hotfix-Branches. Das Verständnis der Merge-Richtungen ist unerlässlich, um Konflikte und Commit-Verluste zu vermeiden.
Die Code-Qualität in develop muss hoch sein, aber nicht absolut. Im Gegensatz zu main, wo jeder Fehler einen dringenden Hotfix bedeutet, erlaubt develop kleinere Unvollkommenheiten, die vor dem Release behoben werden.
Mindestanforderungen an den Code vor dem Merge in develop:
Automatisierte Prüfungen in der CI/CD-Pipeline sollten bei jedem Push in develop ausgeführt werden. Wenn der Build kaputt geht, muss der verantwortliche Entwickler das Problem innerhalb einer Stunde beheben oder seinen Commit zurücknehmen.
Die Einrichtung von GitHub Actions für develop stellt sicher, dass jeder PR vor dem Merge automatisierte Prüfungen durchläuft. Eine typische Pipeline umfasst Build, Tests und Linting.
# GitHub Actions — Überprüfung von develop nach dem Merge
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
Der Merge in develop muss strengen Regeln folgen, um die Stabilität des Integrationsbranches zu erhalten. Ein Verstoß gegen diese Regeln führt zu Konflikten, kaputten Builds und Zeitverschwendung des Teams.
Die Regel PR aktuell halten ist besonders wichtig. Wenn ein Feature-Branch vor einer Woche erstellt wurde und develop 50 Commits voraus ist, kann ein direkter Merge zu Konflikten führen, die besser im Kontext des PR als in develop gelöst werden.
Branch Protection Rules sind Einstellungen auf GitHub-, GitLab- oder Bitbucket-Ebene, die fehlerhafte Änderungen in develop verhindern. Sie stellen sicher, dass selbst ein versehentlicher Push den Integrationsbranch nicht beschädigt.
Empfohlene Schutzregeln für develop:
Die Einrichtung des develop-Schutzes dauert 10 Minuten, verhindert aber wochenlange Ausfallzeiten aufgrund eines kaputten Integrationsbranches. Für Mobilprojekte mit plattformübergreifenden Teams ist dies besonders relevant.
Betrachten wir einen typischen Entwicklertag: Am Morgen aktualisiert er develop, erstellt einen neuen Feature-Branch und merged nach Abschluss der Aufgabe die Änderungen zurück in develop.
# Morgendliche develop-Synchronisation
git checkout develop
git pull origin develop
# Erstellen eines neuen Feature-Branches von develop
git checkout -b feature/add-push-notifications
# Arbeiten an der Funktion...
git add . && git commit -m "Add FCM integration"
# Aktualisierung von develop während der Entwicklung
git fetch origin develop
git rebase origin/develop
# Nach PR-Genehmigung — lokales develop aktualisieren
git checkout develop
git pull origin develop
git branch -d feature/add-push-notifications
Der Befehl git pull in develop führt zwei Operationen gleichzeitig aus: git fetch (holt neue Commits vom Server) und git merge (führt sie mit dem lokalen Branch zusammen). Für develop ist dies die Standard-Synchronisationsmethode.
Wenn Code, der den Build kaputt macht, in develop gelangt, muss schnell gehandelt werden. Jede Stunde develop-Ausfallzeit ist blockierte Arbeit für das gesamte Entwicklungsteam.
Wenn Code, der den Build kaputt macht, in develop gelangt, verwenden Sie git revert, um einen neuen Commit zu erstellen, der die problematischen Änderungen rückgängig macht. Verwenden Sie git reset nicht in develop — es überschreibt die Historie, die andere Teammitglieder bereits haben.
# Finden des problematischen Commits
git log --oneline develop
# Commit-Rücknahme per Revert (sicher)
git revert a1b2c3d
# Fix an entferntes develop senden
git push origin develop
# Änderungen in einem bestimmten Commit anzeigen
git show a1b2c3d --stat
Häufig gestellte Fragen
Für Projekte mit ein bis zwei Entwicklern ist develop oft überflüssig — main und Feature-Branches reichen aus. Sobald das Team auf 3+ Personen anwächst, wird develop notwendig, um unfertige Funktionen vom stabilen Produktionscode zu isolieren.
Nein, direkte Commits in develop sind in jedem professionellen Projekt verboten. Alle Änderungen durchlaufen einen Pull Request mit Code-Review und automatisierten Prüfungen. Ausnahme sind administrative Bearbeitungen von README oder CI-Konfiguration, aber auch diese sind besser über einen PR zu erledigen.
Bei Trunk-Based Development gibt es keinen separaten develop-Branch — alle Entwickler arbeiten in main mit sehr kurzen Feature-Branches (1-2 Tage). Dies ist eine Alternative zu Git Flow, die in der DevOps-Kultur mit hohem Automatisierungsgrad der Tests beliebt ist.
Nach jedem Release wird der Release-Branch zurück in develop gemergt, um alle während der Release-Vorbereitung vorgenommenen Korrekturen zu übernehmen. Wenn dies nicht geschieht, weicht develop vom Release-Code ab, was beim nächsten Release zu Konflikten führt.
Wenn develop kaputt ist, erstellt ein Senior-Entwickler einen Hotfix-Branch vom letzten stabilen Commit, behebt das Problem und merged den Fix direkt in develop über einen PR mit Sonderstatus. Nach der Wiederherstellung wird eine Ursachenanalyse durchgeführt.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch