How to Find Which Commit Broke a Test with Claude Code
Pair git bisect with Claude Code to locate the exact commit that introduced a regression and explain why.
When a test that used to pass is suddenly red and you do not know why, git bisect finds the offending commit by binary search. Claude Code helps in two ways: it can script the bisect with a test command, and once the bad commit is found it can explain what in that change broke things. Together they turn a vague regression into a named commit and a clear cause.
What you need
- Claude Code in the git repo
- A known good commit (or tag) where the test passed
- A reliable command that returns nonzero when the test fails
Step 1: Confirm a good and a bad commit
Identify a commit where the test passed and confirm it fails on HEAD. Bisect needs both ends of the range to search between them.
Step 2: Run an automated bisect
Ask Claude to drive git bisect run with your test command. Bisect checks out the midpoint, runs the command, and narrows the range automatically until it lands on the first bad commit.
git bisect start
git bisect bad HEAD
git bisect good v1.4.0
git bisect run npx vitest run src/reports.test.tsStep 3: Read the culprit commit
Bisect reports the first commit where the test started failing. Have Claude show that commit and explain which line in it caused the regression.
Step 4: Reset bisect and fix the right thing
End the bisect session to return to your branch, then decide whether the commit was a real regression to revert or an intended change that needs the test updated. Here the format change was deliberate, so the test should be brought in line.
Result: the regression is pinned to commit 9a3f1c2, explained as a deliberate date-format change, and resolved by updating the test rather than reverting a good change.
Watch related tutorials
1:42:18
28:14
41:09
9:47
8:23
52:31