git-bisect
Use binary search to find the commit that introduced a bug. tldr-pages
On several platforms
Several platforms
Use binary search to find the commit that introduced a bug. Git automatically jumps back and forth in the commit graph to progressively narrow down the faulty commit.
Start a bisect session on a commit range bounded by a known buggy commit, and a known clean (typically older) one
git bisect start bad_commit good_commitIdentifyFor each commit that git bisect selects, mark it as "bad" or "good" after testing it for the issue
git bisect goodIdentifyEnd the bisect session and return to the previous branch
git bisect resetIdentifySkip a commit during a bisect (e.g. one that fails the tests due to a different issue)
git bisect skipIdentifyStart a bisect session considering only commits that modify a specific file or directory
git bisect start bad_commit good_commit -- path/to/file_or_directoryIdentifyAutomate the bisect process using a test script that exits with 0 for "good" and non-zero for "bad"
git bisect run path/to/test_script optional_script_argumentsIdentifyDisplay a log of what has been done so far
git bisect logIdentifyShow remaining candidate commits to be checked
git bisect visualizeIdentify