TL;DR — Kurzzusammenfassung
Meistern Sie fortgeschrittene Git-Techniken, um eine saubere Historie aufrechtzuerhalten, Aufgaben zu automatisieren und Fehler mit Rebase, Bisect und Hooks zu Debuggen.
Jenseits der Git-Grundlagen
Die Beherrschung fortgeschrittener Git-Tools reduziert Merge-Konflikte, automatisiert die Codequalität und verkürzt die Debugging-Zeit erheblich.
1. Git Rebase: Lineare Historien erhalten
Rebase verschiebt oder kombiniert eine Sequenz von Commits auf eine neue Basis.
Wie man Rebase anwendet
git checkout feature
git rebase main
Goldene Regel: Wenden Sie Rebase niemals auf öffentliche Branches an.
Interaktives Rebase (Squashing)
Tippen Sie WIP-Commits vor einem PR zusammen:
git rebase -i HEAD~5
Ändern Sie pick im Editor zu squash.
2. Git Bisect: Das Debugging-Superwerkzeug
Git Bisect führt eine binäre Suche durch die Commit-Historie durch, um genau den Commit zu finden, der einen Fehler eingeführt hat.
- Start:
git bisect start - Als defekt markieren:
git bisect bad - Guten alten Commit markieren:
git bisect good <hash> - Testen. Wenn es funktioniert:
git bisect good. Wenn nicht:git bisect bad. - Wiederholen, bis der defekte Commit gefunden ist.
- Aufräumen:
git bisect reset
3. Git Hooks: Qualität Automatisieren
Hooks sind Skripte im .git/hooks-Verzeichnis, die lokal ausgeführt werden.
Beispiel: Ein pre-commit-Hook
Dieser Hook verhindert fehlerhaften Code, indem er Tests vor jedem Commit erzwingt:
#!/bin/sh
# Ausführbar machen: chmod +x .git/hooks/pre-commit
echo "Führe Tests aus..."
npm test
if [ $? -ne 0 ]; then
echo "Tests müssen erfolgreich sein!"
exit 1
fi
Zusammenfassung
- Rebase (
git rebase -i) hält den Verlauf linear. - Bisect (
git bisect) spürt Regressionen schnell auf. - Hooks (
.git/hooks/pre-commit) setzen Qualitätsregeln lokal durch.