Home·Terminal commands

git bisect

git

Usage

git bisect start <bad> <good>

Halves the range of commits to find the first bad one; you must finish with git bisect reset, or you stay parked on a detached commit.

Common flags

FlagMeaning
start <bad> <good>begin, naming a broken and a working commit
goodmark the checked-out commit as working
badmark it as broken
skipthis commit cannot be tested
run <cmd>let a command decide by its exit code
resetstop and go back to where you were

Examples

git bisect start HEAD v1.1.0

starts the search between the last release and now

git bisect run npm test

finds the first failing commit with no further input

git bisect reset

ends the session; skipping this leaves you on a detached commit

The confusion is that undo has several shapes — moving where a branch points is not the same as adding a commit that reverses it.

How to read this

  • Square brackets [ ] mark a part you may leave out.
  • An ellipsis … means you can list more than one.
  • Flags are case-sensitive — in some commands -r and -R do different things.

Questions

Q. What does git bisect do?

Halves the range of commits to find the first bad one; you must finish with git bisect reset, or you stay parked on a detached commit.

Q. How do I type it?

git bisect start <bad> <good> — square brackets mark the parts you can leave out.

Q. How many flags are worth knowing?

6 are listed here; the full set is in man git. This command sits under git.

Related commands

man page: man git-bisect