Menu
Coddy logo textTech

Git Bisect

Zuletzt aktualisiert

git bisect findet per Binärsuche den Commit, der einen Bug eingeführt hat. Du nennst ihm einen bekannten funktionierenden und einen bekannten fehlerhaften Commit; es checkt einen Commit in der Mitte aus, du markierst ihn als good oder bad, und es halbiert den Bereich jedes Mal - so findet es den Übeltäter in wenigen Schritten, selbst über Tausende von Commits hinweg.

Probiere diese im Terminal-Playground aus - eine echte Shell in deinem Browser, nichts zu installieren.

git bisect durchsucht die Historie binär zwischen einem guten und einem schlechten Commit und halbiert den verdächtigen Bereich bei jedem Schritt.

Syntax

CommandWhat it does
git bisect startStartet eine Bisect-Sitzung
git bisect badMarkiert den aktuellen Commit als fehlerhaft
git bisect good <hash>Markiert einen bekannten funktionierenden Commit
git bisect good / git bisect badMarkiert jeden getesteten Commit
git bisect run ./test.shAutomatisieren: führt einen Test aus, um jeden Schritt zu markieren
git bisect resetBeendet Bisect, kehrt zu deinem Branch zurück

Durchgerechnetes Beispiel

Finde heraus, welcher Commit den Build kaputtgemacht hat.

StepCommandResult
1git bisect startStartet die Suche
2git bisect badDer aktuelle Commit ist kaputt
3git bisect good v1.0Dieses alte Tag hat funktioniert
4Testen, dann good/badWiederholen, bis Git den Commit nennt

Git-bisect-FAQ

Was macht git bisect?
Es führt eine Binärsuche durch deinen Commit-Verlauf durch, um genau den Commit zu finden, der einen Bug eingeführt hat. Du markierst einen Commit als good und einen als bad; Git checkt wiederholt den Mittelpunkt zum Testen aus und halbiert den Suchbereich jedes Mal, bis es den ersten fehlerhaften Commit identifiziert.
Wie verwende ich git bisect?
Führe git bisect start aus, markiere den aktuellen kaputten Zustand mit git bisect bad und einen bekannten funktionierenden Commit mit git bisect good <hash>. Git checkt einen Mittelpunkt aus; teste ihn und führe git bisect good oder git bisect bad aus. Wiederhole, bis Git den ersten fehlerhaften Commit meldet, und führe dann git bisect reset aus.
Kann ich git bisect automatisieren?
Ja. git bisect run <script> führt dein Skript bei jedem Schritt aus - das Skript sollte für einen guten Commit mit 0 und für einen fehlerhaften mit ungleich null beenden (Test-Runner eignen sich gut). Git bisect dann automatisch, ohne dass du jeden Commit von Hand markierst, und gibt am Ende den verursachenden Commit aus.
Wie beende ich ein Bisect?
Führe git bisect reset aus, um die Sitzung zu beenden und zu dem Branch und Commit zurückzukehren, auf dem du vor dem Start warst. Tu das, egal ob du den fehlerhaften Commit gefunden hast oder nicht - es räumt den temporären Bisect-Zustand auf.
Kann ich das online üben?
Ja. Öffne den Terminal-Playground, um git bisect in einer echten Shell in deinem Browser auszuführen - nichts zu installieren. Coddys kostenloser interaktiver Git-Kurs behandelt auch das schrittweise Inspizieren des Verlaufs.
Coddy programming languages illustration

Lerne Git mit Coddy

LOS GEHT'S