Git Bisect

Use when: find the commit that introduced a bug with a binary search over history.

kimtth 2c53664 973 B Updated

File contents

Goal: pinpoint the exact commit that caused a regression.

Use for:

  • a bug that appeared somewhere in a range of commits
  • regressions with a clear good and bad state
  • narrowing blame when the diff is large

Workflow:

  1. Find a known-good and a known-bad commit.
  2. Start bisect: mark bad, then mark good.
  3. Test the checkout git selects at each step.
  4. Mark each as good or bad to halve the range.
  5. Let bisect converge on the first bad commit.
  6. Reset bisect and inspect that commit's diff.

Automate:

  • write a script that exits 0 (good) or non-zero (bad)
  • run git bisect run to search hands-free
  • ensure the test reliably reproduces the bug

Rules:

  • use a reliable, fast reproducer for each step
  • keep the working tree clean between steps
  • run git bisect reset when finished
  • a flaky test makes bisect lie; stabilize it first

kimtth/agent-skill-100-lines-or-less/tree/main/skills/git-bisect commit 2c53664e6d

Frequently asked questions

npx skillmds@latest add kimtth/git-bisect