Manual of git-bisect-rebase(1)

git-bisect-rebase(1) General Commands Manual git-bisect-rebase(1)

git-bisect-rebase - Rebase a branch bisecting to find conflicting commits

git bisect-rebase [option ...] [upstream [branch]]
git bisect-rebase [--abort|--continue|--quit]

git-bisect-rebase(1) rebases branch on top of upstream progressively, stopping at each commit from upstream which introduces a conflict.

It uses git-bisect(1) to find the conflicts efficiently, and git-rebase(1) to perform the rebase operations.

upstream and branch are interpreted as if by git-rebase(1).

Abort the bisect-rebase operation and reset HEAD to the original branch.
Restart the bisect-rebase process after having resolved a rebase conflict.
Abort the bisect-rebase operation, but HEAD is not reset.

git-bisect(1) options

The following options are interpreted as if by git-bisect(1).

git-rebase(1)_options">_options">git-rebase(1) options

The following options are interpreted as if by git-rebase(1).

--[no-]keep-empty
--[no-]reapply-cherry-picks
--[no-]allow-empty-message
--strategy-option=arg
--[no-]rerere-autoupdate
--[no-]stat
--[no-]verify
--[no-]ignore-whitespace
--[no-]update-refs

Run cmd at the target commit found by git-bisect(1), before every git-rebase(1) operation. The exit code will be interpreted as if by git bisect run cmd.
Run cmd after a git-rebase(1) operation finishes successfully. The exit code will be interpreted as if by git bisect run cmd.

Algorithm for rebasing a branch 'x' on top of 'master'.


git bisect-rebase master x;
#	if no conflicts, done
#	loop:
#	resolve conflicts
git rebase --continue;
git bisect-rebase --continue;
#	... rinse and repeat (goto loop)

Algorithm for rebasing a tree of branches on top of 'master'. Consider a branch 'A', with two childs 'B' and 'C'.


#	loop:
git bisect-rebase master A;
#	if no conflicts, goto children
git rebase --abort;
git bisect-rebase --quit;
#	children:
git bisect-rebase A B;
#	follow algorithm for single branch with master=A and x=B
git bisect-rebase A C;
#	follow algorithm for single branch with master=A and x=C
#	if 'goto children' above, done
git tag tmpA;
git bisect-rebase master A;
#	resolve conflicts
git rebase --continue;
git bisect-rebase --quit;
git rebase --onto A tmpA B;
#	resolve conflicts, if any
git rebase --onto A tmpA C;
#	resolve conflicts, if any
git tag -d tmpA;
#	... rinse and repeat (goto loop)

git-bisect(1), git-rebase(1)

2026-10-10 Linux man-pages (unreleased)

Different Versions of this Page: