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.

  1. Start: git bisect start
  2. Als defekt markieren: git bisect bad
  3. Guten alten Commit markieren: git bisect good <hash>
  4. Testen. Wenn es funktioniert: git bisect good. Wenn nicht: git bisect bad.
  5. Wiederholen, bis der defekte Commit gefunden ist.
  6. 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.

Verwandte Artikel