← Blog overview

Wie man den fehlerhaften Commit findet: Und wie Git Bisect und Claude Code den Tag gerettet haben

„Das hat letzte Woche noch funktioniert.“ Diese Worte markieren den Beginn einer Debugging-Session, die niemand will. Ein Bug ist aufgetreten, die Produktion ist betroffen, und irgendwo in den letzten Hunderten von Commits steckt die eine Änderung, die das alles ausgelöst hat. Die meisten Engineers fangen an zu raten. Der richtige Schritt ist, aufzuhören zu raten und eine binäre Suche arbeiten zu lassen.

Git bisect ist ein eingebauter Git-Befehl, der seit 2007 existiert. Er findet den genauen Commit, der eine Regression verursacht hat, in ungefähr log2(n) Schritten. Kombiniert mit Claude Code läuft die gesamte Schleife automatisiert ab — vom Schreiben des Testskripts bis zur Erklärung der Ursache.

1. Was Git bisect tatsächlich macht

Git bisect führt eine binäre Suche durch die Commit-Historie durch. Bisher: Ein Entwickler checkt Commits manuell, führt einen Test durch, notiert das Ergebnis, wählt den nächsten Commit, und das immer wieder. Bei 400 Commits können das mehr als 200 manuelle Schritte sein. Mit Git bisect sind es für 400 Commits ungefähr 9.

Mit Git bisect wird ein schlechter Commit markiert, ein guter Commit, und der Rest wird dem Algorithmus überlassen. Die Session endet mit git bisect reset — diesen Befehl immer ausführen.

2. Der Automatisierungs-Hebel: git bisect run

Manuelles bisect ist bereits schnell. Automatisiertes bisect ist der eigentliche Power-Move. Git bisect run akzeptiert ein Skript, das Exit-Code 0 als einen guten Zustand und jeden Nicht-Null-Code als einen schlechten Zustand zurückgibt. Das Testskript muss deterministisch sein: derselbe Commit sollte bei jedem Durchlauf denselben Exit-Code produzieren.

3. Wo KI-orchestriertes Debugging den Unterschied macht

Git bisect findet den Commit. Es erklärt nicht das Warum. Mit Claude Code schreibt die KI das Testskript, steuert die Schleife automatisch, liest den Diff und schlägt den minimalen Fix vor. Die kritische Einschränkung: Claude Code muss angewiesen werden, ausschließlich git bisect zur Identifizierung des Verursachers zu verwenden.

4. Das Prompt-Muster, das funktioniert

Gebe die genaue Fehlermeldung, die defekte Route, den Port an und füge eine harte Einschränkung hinzu: Verwende NUR git bisect. Der Commit MUSS durch einen git bisect run identifiziert werden. Jedes Element des Prompts hat seinen Zweck.

5. Jenseits von Bugs: Weitere Anwendungsfälle

  • Performance-Regressionen: Ein API-Endpunkt wuchs von 80ms auf 600ms.
  • Build-Zeit-Explosionen: CI dauerte vier Minuten und braucht jetzt achtzehn.
  • Bundle-Size-Zunahme: Ihr Frontend-Bundle wuchs um 2MB.
  • Verhaltensänderungen: Ein Report liefert andere Zahlen.

6. Was git bisect nicht kann

  • Bisect findet, welcher Commit eine Änderung eingeführt hat, aber nicht warum.
  • Bisect erfordert einen echten guten Startpunkt.
  • Bisect ist für nicht-deterministische Bugs nicht geeignet, solange das Testskript nicht deterministisch gemacht wird.
  • Bisect behebt nichts.

7. Häufig gestellte Fragen

F: Wie viele Schritte benötigt git bisect, um 1.000 Commits zu durchsuchen?

A: Ungefähr 10 Schritte. Für 1.000 Commits etwa 10, für 400 Commits etwa 9.

F: Was ist git bisect run und wann sollte ich es verwenden?

A: git bisect run ist die automatisierte Form von bisect. Git führt das Skript bei jedem Schritt aus und setzt die Suche automatisch fort, bis der erste fehlerhafte Commit identifiziert ist.

F: Kann ich git bisect mit Claude Code für jede Art von Regression verwenden?

A: Ja, solange die Regression durch ein Skript erkennbar ist. Claude Code schreibt das Testskript, steuert die Schleife, liest den Diff und erklärt die Grundursache.

F: Warum muss ich Claude Code darauf beschränken, nur git bisect zu verwenden?

A: Ohne eine explizite Einschränkung könnte ein KI-Agent abkürzen. Der Sinn von bisect ist, das Raten vollständig zu eliminieren.

F: Was soll ich tun, nachdem git bisect den Verursacher-Commit identifiziert hat?

A: Lesen Sie den Diff, verstehen Sie die Änderung, und entscheiden Sie ob zurücksetzen oder patchen. Claude Code liest den Diff und schlägt den minimalen Fix vor.

Das Fazit

Für jede Codebase mit echter Commit-Historie skaliert das Raten nicht. Git bisect wandelt „irgendwo in den letzten 400 Commits“ in einen präzisen Verursacher in etwa 9 Schritten um. GoTeams AI Bootcamp vermittelt dieses Playbook als Teil des praktischen Lehrplans für Engineers, die mit KI in der Produktion bauen.


Comments

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert