Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

6.7 Branches (Zweige)

Humboldt-Universität zu Berlin, Institut für Bibliotheks- und Informationswissenschaft

Branches (deutsch: Zweige) gehören zu den mächtigsten Features von Git. Sie erlauben es, parallel an verschiedenen Versionen eines Projekts zu arbeiten.

Was ist ein Branch?

Ein Branch ist ein unabhängiger Entwicklungszweig. Stellen Sie sich einen Branch wie eine alternative Timeline vor, in der Sie experimentieren können, ohne die Hauptversion zu beeinflussen.

Metapher: Ein Baum (Tree) mit mehreren Ästen (Branches):

Warum Branches?

Szenario 1: Neue Funktion entwickeln

Sie arbeiten an einem Projekt und möchten eine neue Funktion ausprobieren, sind aber nicht sicher, ob sie funktioniert. Mit Branches können Sie:

  1. Einen neuen Branch erstellen (z.B. feature-statistik)

  2. In diesem Branch experimentieren

  3. Falls es funktioniert: Zurück zu main und den Branch mergen

  4. Falls nicht: Branch einfach löschen, main bleibt unberührt

Szenario 2: Zusammenarbeit

Mehrere Personen arbeiten am selben Projekt:

Szenario 3: Verschiedene Versionen

Sie entwickeln ein Tool und möchten:

Branches anzeigen

Alle lokalen Branches anzeigen:

git branch

Ausgabe:

* main
  feature-statistik
  bugfix-datum

Der * zeigt den aktuellen Branch an.

Auch Remote-Branches anzeigen:

git branch -a

Einen neuen Branch erstellen

git branch feature-export

Dieser Befehl erstellt einen neuen Branch namens feature-export, wechselt aber noch nicht zu ihm.

Zu einem Branch wechseln

git checkout feature-export

Jetzt arbeiten Sie im Branch feature-export. Alle Commits, die Sie jetzt erstellen, werden nur in diesem Branch gespeichert.

Branch erstellen und direkt wechseln

Häufig möchte man beides auf einmal:

git checkout -b feature-export

Das -b steht für “branch” und bedeutet: “Erstelle einen neuen Branch und wechsle direkt zu ihm.”

In einem Branch arbeiten

Angenommen, Sie sind im Branch feature-export:

# Branch anzeigen
git branch
# * feature-export
#   main

# Datei erstellen und ändern
echo "def exportiere_daten():\n    pass" > export.py

# Committen
git add export.py
git commit -m "Export-Funktion angelegt"

Dieser Commit existiert jetzt nur im Branch feature-export, nicht in main!

Zwischen Branches wechseln

Wechseln Sie zurück zu main:

git checkout main

Was passiert?

Wechseln Sie wieder zu feature-export:

git checkout feature-export

Was passiert?

Branches zusammenführen (Merge)

Wenn Sie mit Ihrer Arbeit im Feature-Branch zufrieden sind, möchten Sie ihn mit main zusammenführen.

Schritt 1: Zu main wechseln

git checkout main

Schritt 2: Den Feature-Branch mergen

git merge feature-export

Was passiert? Git fügt alle Commits aus feature-export in main ein.

Beispiel-Ausgabe (Fast-Forward Merge):

Updating a1b2c3d..e4f5g6h
Fast-forward
 export.py | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 export.py

Ein Fast-Forward Merge bedeutet: main hatte keine eigenen Änderungen, Git schiebt main einfach vorwärts zu den neuen Commits.

Schritt 3: Branch löschen (optional)

Nach erfolgreichem Merge können Sie den Feature-Branch löschen:

git branch -d feature-export

Das -d steht für “delete”. Git fragt sicherheitshalber nach, wenn der Branch noch nicht gemerged wurde.

Visualisierung: Branch-Workflow

Wann sind Branches sinnvoll?

Gute Anwendungsfälle

Weniger sinnvoll

Branch-Strategien

Es gibt verschiedene Konventionen, wie man Branches benennt und organisiert:

Einfaches Modell (für Anfänger)

main            → Stabiler Haupt-Branch
feature-xyz     → Neue Features
bugfix-abc      → Fehlerbehebungen
experiment-*    → Experimente

Git Flow (für größere Projekte)

main            → Produktionsversion
develop         → Entwicklungsversion
feature/xyz     → Feature-Branches
hotfix/abc      → Dringende Bugfixes
release/v1.0    → Release-Vorbereitung

Für Ihren Einstieg reicht das einfache Modell!

Merge-Konflikte (Überblick)

Ein Merge-Konflikt entsteht, wenn:

Praktisches Beispiel

Ein vollständiges Beispiel: Feature entwickeln, mergen, Branch löschen.

# 1. Neuen Branch erstellen und wechseln
git checkout -b feature-statistik

# 2. Im Feature-Branch arbeiten
echo "def statistik():\n    pass" > statistik.py
git add statistik.py
git commit -m "Statistik-Funktion angelegt"

# 3. Weiterarbeiten
echo "    print('Statistik')" >> statistik.py
git add statistik.py
git commit -m "Statistik-Ausgabe implementiert"

# 4. Zurück zu main
git checkout main

# 5. Feature-Branch mergen
git merge feature-statistik

# 6. Branch löschen (da fertig)
git branch -d feature-statistik

# 7. Prüfen, dass nur noch main existiert
git branch

Zusammenfassung

Die wichtigsten Branch-Befehle:

BefehlBeschreibung
git branchBranches anzeigen
git branch <name>Neuen Branch erstellen
git checkout <name>Zu Branch wechseln
git checkout -b <name>Branch erstellen und wechseln
git merge <name>Branch in aktuellen Branch mergen
git branch -d <name>Branch löschen

Typischer Feature-Workflow

git checkout -b feature-xyz      # Branch erstellen
# ... arbeiten und committen ...
git checkout main                # Zurück zu main
git merge feature-xyz            # Feature mergen
git branch -d feature-xyz        # Branch löschen

Im nächsten Kapitel lernen Sie, wie Sie Git konkret in diesem Kurs einsetzen können.