Eine praktische Demonstration anhand der tatsächlichen Commit-Historie aus dem road-profile-viewer Repository.
Zustand am 21.10.2025 um 16:26:11 (auf main)
beaea6c
main
HEAD
lecture-01
92c2df3
Befehl:
$ git checkout -b feauture/fix_code_quality # (Hinweis: hatte ursprünglich den Tippfehler!)
Nach dem Erstellen des Branches:
feauture/fix_code_quality
Wichtige Erkenntnis: Das Erstellen eines Branches ist günstig - es ist nur das Erstellen eines Zeigers (ein paar Bytes)!
Den ersten Commit erstellen:
$ vim main.py # Code-Formatierung reparieren $ git add main.py $ git commit -m "fix code formatting using ruff format"
Vor dem Commit:
Nach dem Commit (032f36c):
Was ist passiert:
032f36c
Nur der aktuelle Branch-Zeiger bewegt sich, wenn du commitest.
Andere Branches bleiben, wo sie sind!
So bieten Feature-Branches Isolation - deine Arbeit auf dem Feature-Branch beeinflusst main nicht.
Weitere Commits erstellen:
$ git commit -m "lasse ruff check laufen..." # e341990 $ git commit -m "style: fix code quality..." # 1ff0a77
Finaler Zustand nach 3 Commits auf dem Branch:
Was wir sehen:
Zurück zu main wechseln:
$ git checkout main
Vor dem Checkout:
Nach dem Checkout:
Nur HEAD hat sich bewegt!
1ff0a77
Das ist alles, was git checkout macht - es bewegt den HEAD-Zeiger!
git checkout
Wenn du den Feature-Branch mergst:
$ git checkout main $ git merge feauture/fix_code_quality # (Oder merge über GitHub PR)
Ergebnis: Fast-Forward-Merge
Nach dem Merge (Fast-Forward):
Den lecture-04 Tag erstellen:
$ git tag -a lecture-04 -m "End of Chapter 02 (Refactoring): Code quality fixes"
Aktueller Zustand mit Tag:
Alle vier Zeiger zeigen auf den GLEICHEN Commit 1ff0a77!
Tags sind genau wie Branches - sie sind Zeiger auf Commits!
Der Unterschied:
Beide sind nur Referenzen auf Commits - keine Kopien von Commits.
Den Tippfehler korrigieren:
$ git branch -m feauture/fix_code_quality feature/fix_code_quality
Vor dem Umbenennen:
Nach dem Umbenennen:
Der Commit 1ff0a77 hat sich nie geändert!
Wir haben nur:
Deshalb:
lecture-04
Wichtige Erkenntnisse:
Wenn du:
Das Verstehen von Branches als Zeiger hilft dir:
Git wird weniger magisch und logischer!
In deinem täglichen Workflow:
# Einen Branch erstellen? Nur einen Zeiger erstellen! $ git checkout -b feature/new-feature # Commits machen? Den Branch-Zeiger vorwärts bewegen! $ git commit -m "Add feature" # Branches wechseln? HEAD bewegen! $ git checkout main # Mergen? Den Ziel-Branch-Zeiger bewegen! $ git merge feature/new-feature
Jeder Git-Befehl manipuliert nur diese Zeiger!
Merke dir:
Probiere es selbst:
$ git log --oneline --graph --all --decorate
Sieh alle Zeiger (Branches, Tags, HEAD) und auf welche Commits sie zeigen!
Aus der Vorlesungsdatei:
Interaktives Lernen:
Offizielle Dokumentation: