git-bisect-rebase(1)

πŸ“¦ version 6.20, in arch rolling, nixpkgs unstable

πŸŽ€ git-bisect-rebase β€” NAME

okay bestie, meet git-bisect-rebase ✨ β€” it rebases a branch while bisecting its way through to find the exact commits that are causing you conflict drama πŸ’€


🌸 SYNOPSIS

git bisect-rebase [option ...] [upstream [branch]]

git bisect-rebase [--abort|--continue|--quit]

πŸ’… DESCRIPTION

so here's the vibe: git-bisect-rebase(1) takes your branch and rebases it on top of upstream, but progressively β€” it stops at every single commit from upstream that introduces a conflict πŸ™ˆ. Like, it's not gonna let you rawdog a whole rebase and then dump 40 conflicts on you at once, no ma'am.

under the hood it's lowkey iconic: it uses git-bisect(1) to track down the conflicts efficiently πŸ¦‹ (binary search girlie) and git-rebase(1) to actually do the rebase operations. two legends, one command ✨


πŸ“ PARAMETERS

upstream and branch are interpreted as if by git-rebase(1). that's the whole thing, no extra lore πŸ’–


✨ OPTIONS ✨

πŸ’œ Mode options

  • --abort β€” bail on the whole bisect-rebase operation and reset HEAD back to the original branch 🫢 (we're pretending this never happened)
  • --continue β€” pick the process back up after you've resolved a rebase conflict πŸ’… like, you did the work, now let it cook
  • --quit β€” abort the bisect-rebase operation, but HEAD is not reset 😭 (so the mess stays, but the operation stops)

🌈 git-bisect(1) options

these options are interpreted as if by git-bisect(1). iconic crossover episode πŸŽ€

  • --first-parent

🧚 git-rebase(1) options

and these ones are interpreted as if by git-rebase(1). passing them straight through, no gatekeeping πŸ‘‘

  • --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 β€” runs cmd at the target commit that git-bisect(1) found, before every git-rebase(1) operation ⏰. the exit code gets interpreted as if by git bisect run cmd. so your script is literally the one doing the judging, no cap πŸ”₯
  • --post-exec=cmd β€” runs cmd after a git-rebase(1) operation finishes successfully πŸŽ‰. same deal: the exit code is interpreted as if by git bisect run cmd πŸ‘‘

πŸ’– EXAMPLES

🌸 Rebasing a single branch

the 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

the algorithm for rebasing a tree of branches on top of 'master'. picture 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

git-bisect(1), git-rebase(1) β€” go read those too, bestie, they're the whole support system for this one πŸ’–


okay that's the whole page, mwah πŸ’‹ this beauty lives in Linux man-pages 6.20 and it was dated 2026-10-10 β€” slay, periodt πŸ‘‘βœ¨

πŸ“¦ where this page comes from
  • arch rolling: man-pages 6.20-1 Β· BSD-2-Clause AND BSD-3-Clause AND BSD-4.3TAHOE AND BSD-4-Clause-UC AND GPL-1.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-or-later AND LGPL-3.0-linking-exception AND LGPL-3.0-or-later AND LicenseRef-Public-Domain AND LicenseRef-UltraPermissive AND Linux-man-pages-1-para AND Linux-man-pages-copyleft AND Linux-man-pages-copyleft-2-para AND Linux-man-pages-copyleft-var AND MIT AND Spencer-94
  • nixpkgs unstable: man-pages 6.20
  • πŸ“œ the page's license: Linux-man-pages-copyleft
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms