git bisect - finding bugs
-
Notice a bug that you recall was working earlier. (but apparently there were no automated tests checking it)
-
Task: find the change that broke it
-
Find an old commit where it was still working.
-
Binary search the commit since then to locate the breaking change.
Preferably write an automated test that can verify the feature. Put it in a separate test file in the workspace.
git bisect start
# test fails
git bisect bad
git checkout old-sha
# test passes
git bisect good
# test passes / fails
git bisect good / bad