Feature Branch in Git: Was es ist, wie man Branches erstellt und damit arbeitet

Autor: IT Sectr Veröffentlicht: 2026-05-09 Lesezeit: 8 Min.

Feature Branch — ist eine Branching-Technik in Git, bei der jede neue Funktion in einem separaten Branch entwickelt wird, isoliert vom Hauptcode. Dies ermöglicht mehreren Entwicklern, gleichzeitig an verschiedenen Aufgaben zu arbeiten, ohne die stabile Version des Projekts zu gefährden. Laut Atlassian, 2024 ist Feature Branch ein Schlüsselelement von Git Flow und wird in den meisten kommerziellen Projekten verwendet.

Wichtige Punkte

  • Feature Branch — ist ein separater Git-Branch zur Entwicklung einer neuen Funktion, isoliert von develop und main.
  • Code-Isolation ermöglicht mehreren Entwicklern, parallel an verschiedenen Funktionen ohne Konflikte zu arbeiten.
  • Pull Request — der primäre Mechanismus zur Code-Review vor der Zusammenführung des feature-Branches in develop.
  • Namenskonventionen für feature-Branches: feature/funktionsname im Standard Git Flow.
  • Branch-Löschung nach der Zusammenführung — eine obligatorische Praxis zur Aufrechterhaltung der Ordnung im Repository.

Was ist ein Feature Branch in Git

Feature Branch (Funktions-Branch) ist ein temporärer Branch in Git, der von develop erstellt wird, um eine bestimmte Funktionalität zu entwickeln. Im Gegensatz zu den langlebigen Branches main und develop existieren feature-Branches nur für eine begrenzte Zeit — von einigen Stunden bis zu einigen Wochen.

Das Hauptziel eines feature-Branches ist es, Änderungen, die mit einer Aufgabe zusammenhängen, vom restlichen Code zu isolieren. Der Entwickler kann in seinem eigenen Branch experimentieren, viele Commits machen und sogar Code zerstören, ohne die Arbeit anderer Teammitglieder zu beeinträchtigen.

Nach Abschluss der Entwicklung wird der feature-Branch über einen Pull Request mit obligatorischem Code-Review zurück in develop zusammengeführt. Nach der Zusammenführung wird der Branch in der Regel gelöscht, um das Repository sauber zu halten.

Laut Vincent Driessen, 2010 wurde das Git-Flow-Modell mit feature-Branches dank der klaren Aufgabentrennung zwischen verschiedenen Branch-Typen zum Industriestandard.

Workflow mit Feature Branch

Der Workflow mit feature-Branches besteht aus einer Abfolge von Schritten, die der Entwickler für jede neue Funktion ausführt. Dieser Prozess minimiert Merge-Konflikte und gewährleistet die Code-Qualitätskontrolle.

  1. Branch erstellen vom letzten Commit von develop. Der Entwickler wechselt zu develop, aktualisiert ihn und erstellt einen neuen feature-Branch.
  2. Entwicklung und Commits im feature-Branch. Der Entwickler nimmt Änderungen vor, macht Commits mit klaren Beschreibungen und pusht den Branch regelmäßig in das entfernte Repository.
  3. Synchronisation mit develop — während der Entwicklung kann der Hauptbranch voranschreiten. Der Entwickler führt einen Rebase oder Merge von develop in seinen feature-Branch durch.
  4. Pull Request erstellen — wenn die Funktion fertig ist, öffnet der Entwickler einen PR zur Code-Review. Das Team überprüft den Code und hinterlässt Kommentare.
  5. Zusammenführen und Löschen — nach der PR-Genehmigung wird der Branch in develop zusammengeführt und sowohl lokal als auch remote gelöscht.

Die regelmäßige Synchronisation mit develop ist entscheidend. Je länger ein feature-Branch ohne Zusammenführung von Änderungen aus develop lebt, desto höher ist die Wahrscheinlichkeit von Konflikten bei der endgültigen Zusammenführung.

Synchronisationshäufigkeit des feature-Branches

SynchronisationshäufigkeitKonfliktrisikoEntwicklungskomfort
TäglichNiedrigErfordert häufigen Rebase oder Merge
WöchentlichMittelKomfortables Tempo, moderate Konflikte
MonatlichHochRisiko komplexer Merge-Konfliktlösung
NieKritischZusammenführung könnte ohne Datenverlust unmöglich sein

Namenskonventionen für feature-Branches

Branch-Namensgebung ist ein wichtiger Teil der Team-Disziplin. Ein einheitlicher Namensstandard ermöglicht es, schnell zu erkennen, an welcher Aufgabe gearbeitet wird und wer sie ausführt.

  • feature/name — das Präfix feature/ wird im klassischen Git Flow verwendet. Beispiel: feature/added-auth-module.
  • feature/JIRA-123-beschreibung — Verknüpfung mit der Aufgaben-Nummer im Tracking-System. Beispiel: feature/PROJ-42-add-login.
  • feature/typ/name — erweitertes Format mit Angabe des Aufgabentyps. Beispiel: feature/feat/analytics-dashboard.

Die Verwendung der Aufgaben-ID aus JIRA, Trello oder einem anderen System ist eine bewährte Praxis. Sie verknüpft den Code automatisch mit der Aufgabe und vereinfacht die Branch-Suche über git log.

Pull-Request-Prozess

Pull Request (oder Merge Request in GitLab) ist eine Anfrage zur Zusammenführung des feature-Branches in develop. Ein PR ist nicht nur eine technische Operation, sondern ein teamweiter Code-Review-Prozess, der die Code-Qualität verbessert und Wissen innerhalb des Teams verbreitet.

Ein guter PR enthält einen Titel mit einer kurzen Aufgabenbeschreibung, einen Link zum Ticket und eine Beschreibung der Änderungen. Der Entwickler sollte angeben, was genau gemacht wurde, welche Dateien geändert wurden und ob es potenzielle Risiken für andere Teile des Projekts gibt.

Das Team überprüft den Code im PR, hinterlässt Kommentare, fordert Änderungen an (change requests) und genehmigt die Zusammenführung (approve). Nach der Genehmigung wird ein Merge oder Squash Merge durchgeführt.

Die durchschnittliche PR-Review-Zeit in der mobilen Entwicklung beträgt 4 bis 24 Stunden. Die Bibliothek Danger automatisiert einen Teil der Überprüfungen, indem sie Linter und Tests direkt im PR ausführt.

Empfehlungen für die Erstellung eines guten PR

  • Größe — nicht mehr als 300-400 Zeilen Änderungen. Große PRs sind schwer zu überprüfen, die Qualität der Überprüfung sinkt.
  • Ein PR — eine Aufgabe — vermeiden Sie das Mischen nicht zusammenhängender Änderungen in einer Anfrage.
  • Screenshots — fügen Sie für UI-Änderungen Screenshots vorher und nachher bei.
  • Tests — schreiben Sie für neue Funktionalität Unit-Tests und nehmen Sie sie in den PR auf.

Strategien zur Zusammenführung von feature-Branches

Nach der PR-Genehmigung kann der feature-Branch auf verschiedene Weise in develop zusammengeführt werden. Die Wahl der Merge-Strategie beeinflusst die Commit-Historie und die Möglichkeit, Änderungen rückgängig zu machen.

  • Merge Commit — erstellt einen Merge-Commit und bewahrt die gesamte Commit-Historie des feature-Branches. Die Historie bleibt vollständig, aber der Verzweigungsgraph wird komplexer.
  • Squash Merge — fasst alle Commits des feature-Branches zu einem zusammen und fügt ihn über develop hinzu. Die Historie wird sauberer, aber Informationen über Zwischen-Commits gehen verloren.
  • Rebase and Merge — schreibt die Commits des feature-Branches über den letzten develop-Commit und führt ohne zusätzlichen Commit zusammen. Die Historie bleibt linear.

Für mobile Projekte mit häufigen Veröffentlichungen wird am häufigsten Squash Merge verwendet: Er liefert eine saubere Historie in develop, während die Entwicklungsdetails in der PR-Beschreibung und der Tracker-Aufgabe bleiben.

Typische Fehler bei der Arbeit mit Feature Branch

Auch erfahrene Entwickler machen Fehler bei der Arbeit mit feature-Branches. Die Kenntnis typischer Probleme hilft, Zeit- und Datenverlust zu vermeiden.

  • Branch lebt zu lange — ein feature-Branch lebt länger als 2-3 Wochen ohne Synchronisation mit develop, was zu massiven Merge-Konflikten führt.
  • Commits mit unklaren Beschreibungen — Nachrichten wie „fix“ oder „update“ erklären nicht, was geändert wurde und warum.
  • Vermischung von Aufgaben — in einem feature-Branch werden zwei nicht zusammenhängende Funktionen entwickelt, was ein selektives Rückgängigmachen unmöglich macht.
  • Fehlende Synchronisation — der Entwickler führt kein git fetch durch und aktualisiert develop nicht, was bei der endgültigen Zusammenführung zu Konflikten führt.

Der beste Weg, diese Probleme zu vermeiden, ist, sich zu Projektbeginn auf Arbeitsregeln zu einigen und automatisierte Überprüfungen in der CI/CD-Pipeline zu verwenden.

Befehlsbeispiele für die Arbeit mit Feature Branch

Betrachten wir ein praktisches Szenario: Ein Entwickler beginnt eine neue Authentifizierungsfunktion in einer mobilen App. Er erstellt einen feature-Branch, arbeitet am Code und schließt die Aufgabe mit einem Pull Request ab.

bash
# Develop aktualisieren und feature-Branch erstellen
git checkout develop
git pull origin develop
git checkout -b feature/add-login-screen

# Arbeit an der Funktion: Commits
git add src/ui/login/
git commit -m "Add login screen layout"

# Feature-Branch auf den Server pushen
git push origin feature/add-login-screen

# Synchronisation mit develop (Rebase)
git fetch origin develop
git rebase origin/develop

# Nach PR-Genehmigung: lokalen develop aktualisieren und Branch löschen
git checkout develop
git pull origin develop
git branch -d feature/add-login-screen

Der Befehl git branch -d löscht den Branch nur, nachdem seine Änderungen vollständig zusammengeführt wurden. Wenn der Branch nicht zusammengeführt ist, schlägt Git die Verwendung von git branch -D zur erzwungenen Löschung vor — verwenden Sie dieses Flag mit Vorsicht.

Automatisierung von Überprüfungen im feature-Branch

Die CI/CD-Pipeline sollte für jeden feature-Branch vor der Erstellung eines PR ausgeführt werden. Dies ermöglicht die Erkennung von Problemen in einem frühen Stadium, bevor der Code zur Überprüfung durch andere Entwickler gelangt.

yaml
# GitHub Actions zur Überprüfung des feature-Branches
name: Feature Branch CI

on:
  push:
    branches:
      - 'feature/**'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run tests
        run: ./gradlew test
      - name: Lint check
        run: ./gradlew lint

Die Pipeline überprüft, ob der Code kompiliert, Tests bestanden werden und der Code-Stil den Teamstandards entspricht. Erst nach Bestehen aller Überprüfungen kann ein Pull Request erstellt werden.

Häufig gestellte Fragen

Kann man mehrere feature-Branches gleichzeitig haben?

Ja, das ist eine Standardpraxis. Jeder Entwickler kann in seinem eigenen feature-Branch arbeiten, und alle synchronisieren unabhängig mit develop. Die Hauptregel ist ein Branch pro Aufgabe, um Cross-Task-Abhängigkeiten im Code zu vermeiden.

Was tun, wenn ein feature-Branch weit hinter develop zurückliegt?

Führen Sie git rebase origin/develop auf Ihrem feature-Branch aus. Wenn Konflikte auftreten, lösen Sie sie einzeln — die Commits werden über den letzten develop-Stand neu geschrieben. Nach dem Rebase ist git push --force erforderlich, um den entfernten Branch zu aktualisieren.

Was tun, wenn ein feature-Branch ohne Zusammenführung nicht mehr benötigt wird?

Wenn die Aufgabe abgebrochen wurde, kann der feature-Branch einfach gelöscht werden. Verwenden Sie git branch -d feature/name für den lokalen Branch und git push origin --delete feature/name für den entfernten. Alle nicht committeten Änderungen gehen verloren.

Was ist der Unterschied zwischen feature-Branch und task-Branch?

Im Wesentlichen ist es dasselbe. Verschiedene Teams verwenden unterschiedliche Präfixe: feature/, task/, feat/. Es gibt keinen Unterschied in der Git-Mechanik — alle sind temporäre Branches, die von develop zur isolierten Entwicklung erstellt wurden.

Muss man den feature-Branch nach der Zusammenführung löschen?

Ja, das ist eine obligatorische Praxis. Branches nach der Zusammenführung verschmutzen die Referenzliste und können Verwirrung stiften. Die meisten Plattformen (GitHub, GitLab) bieten an, den Branch sofort nach dem Merge des PR zu löschen, und lokale Branches werden mit dem Befehl git branch -d gelöscht.

Zusammenfassung

  • Feature Branch — ein temporärer Branch zur isolierten Entwicklung einer Funktion, erstellt von develop.
  • Code-Isolation ermöglicht paralleles Arbeiten an verschiedenen Funktionen ohne Konflikte oder Risiko der Beschädigung von stabilem Code.
  • Pull Request mit obligatorischem Code-Review ist der primäre Qualitätskontrollmechanismus vor der Zusammenführung des feature-Branches.
  • Namenskonventionen — Präfix feature/ mit Aufgaben-ID aus dem Tracking-System und kurzer Beschreibung.
  • Regelmäßige Synchronisation mit develop über Rebase oder Merge ist notwendig, um Merge-Konflikte zu minimieren.
  • Squash Merge — die optimale Strategie für mobile Projekte, die eine saubere Historie in develop liefert.
  • Empfehlung: Begrenzen Sie die Lebensdauer des feature-Branches auf 5 Arbeitstage und löschen Sie den Branch sofort nach der Zusammenführung.

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.

Projekt besprechen

Lesen Sie auch