Manual of git-bisect-rebase(1)
| git-bisect-rebase(1) | General Commands Manual | git-bisect-rebase(1) |
NAME
git-bisect-rebase - Rebase a branch bisecting to find conflicting commits
SYNOPSIS
git bisect-rebase |
[option ...] [upstream [branch]] |
git bisect-rebase |
[--abort|--continue|--quit] |
DESCRIPTION
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.
PARAMETERS
upstream and branch are interpreted as if by git-rebase(1).
OPTIONS
Mode options
- --abort
- Abort the bisect-rebase operation and reset HEAD to the original branch.
- --continue
- Restart the bisect-rebase process after having resolved a rebase conflict.
- --quit
- 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">git-rebase(1)_options">git-rebase(1) options
The following options are interpreted as if by git-rebase(1).
- --rebase-merges[=arg]
- -r
- --no-rebase-merges
- --apply
- --empty=arg
- --[no-]keep-empty
- --[no-]reapply-cherry-picks
- --[no-]allow-empty-message
- --merge
- -m
- --strategy=arg
- -s arg
- --strategy-option=arg
- -X arg
- --[no-]rerere-autoupdate
- --gpg-sign[=arg]
- -Sarg
- --no-gpg-sign
- --quiet
- -q
- --verbose
- -v
- --[no-]stat
- -n
- --[no-]verify
- -Carg
- --no-ff
- --force-rebase
- -f
- --[no-]ignore-whitespace
- --[no-]update-refs
- --exec=arg
- -x arg
Other options
- --pre-exec=cmd
- 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.
- --post-exec=cmd
- Run cmd after a git-rebase(1) operation finishes successfully. The exit code will be interpreted as if by git bisect run cmd.
EXAMPLES
Rebasing a single branch
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)
Rebasing a tree of branches
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)
SEE ALSO
| 2026-10-10 | Linux man-pages (unreleased) |