Den Commit finden, der es kaputtgemacht hat

Den Commit finden, der es kaputtgemacht hat

- Matt

Irgendwann zwischen dem letzten Release und heute ist ein Test rot geworden.

git bisect start
git bisect bad
git bisect good v1.8.0

Git checkt jetzt den mittleren Commit aus, man prüft und meldet good oder bad. Bei 500 Commits sind das neun Durchgänge.

Automatisch geht es, wenn sich die Prüfung als Befehl ausdrücken lässt:

git bisect run dotnet test --filter FullyQualifiedName~MeinTest

Ein Rückgabewert ungleich null gilt als schlecht. Danach steht der schuldige Commit da, ohne dass man dabeigesessen hätte.

Wichtig am Ende:

git bisect reset

Sonst bleibt man in einem abgetrennten HEAD stehen und wundert sich beim nächsten Commit.