Ein Git-Branch (deutsch: Zweig) ist eine parallele Entwicklungslinie in einem Git-Repository. Technisch ist ein Branch nichts weiter als ein beweglicher Zeiger auf einen Commit — genau deshalb kostet das Anlegen eines Branches in Git kaum etwas und ist praktisch beliebig oft möglich.

Branches als Zeiger verstehen

Git speichert die Historie als Kette von Commit-Objekten. Ein Branch-Name (etwa main oder feature/login) zeigt auf den jeweils letzten Commit dieser Linie. Wird ein neuer Commit erstellt, wandert der Zeiger des aktiven Branches automatisch mit. Der spezielle Zeiger HEAD markiert, auf welchem Branch man sich gerade befindet.

git branch feature/login   # neuen Branch anlegen (Zeiger auf aktuellen Commit)
git switch feature/login   # Branch wechseln (HEAD umhängen)
git branch                 # alle lokalen Branches anzeigen
git branch -d feature/login

Warum Branches so wichtig sind

  • Isolation: Experimente und neue Funktionen entstehen auf eigenen Branches, ohne den stabilen Hauptzweig zu gefährden.
  • Teamarbeit: Mehrere Entwickler arbeiten parallel an verschiedenen Aufgaben.
  • Cheap: Da nur ein Zeiger verschoben wird, sind Branching und Merging in Git extrem schnell — anders als bei älteren Systemen wie SVN, die Dateien kopierten.

Branch-Arten und Workflows

Neben lokalen Branches kennt Git Remote-Tracking-Branches (z. B. origin/main), die den Stand auf dem Server abbilden. Kurzlebige Feature-Branches sind das Herz vieler Workflows: Sie werden für eine Aufgabe angelegt, per Merge oder Rebase wieder integriert und danach gelöscht. Branching-Modelle wie GitFlow oder Trunk-Based Development legen fest, welche Branches dauerhaft bestehen und wie sie zusammengeführt werden.

Praxis-Tipps

  • Branch-Namen sprechend wählen: feature/, bugfix/, hotfix/ als Präfixe.
  • Vor dem Anlegen von main aus gehen und vorher git fetch + git pull ausführen, damit der neue Branch auf dem aktuellen Stand basiert.
  • Nicht benötigte Branches nach dem Merge löschen, sonst sammeln sie sich an.

Verwandte Grundlagen: Versionierung, git-Befehle, Repository.