Skip to content
Download

DOCS / GIT

Interactive rebase

Birch’s interactive rebase is a dialog, not a text file. Instead of editing a git rebase -i todo list in a terminal editor, you drag rows to reorder commits, pick an action per commit, and type new messages inline. Under the hood, a bundled editor proxy answers git’s editor prompts, so no external editor ever opens.

The Interactive rebase dialog rewrites the most recent commits on the current branch (“Rewrite recent commits on <branch>”).

  • Commits to load — how many commits from the tip to rewrite, from 1 up to 50 (default 10). The base of the rebase is shown next to it as HEAD~N.
  • The commit list — oldest at the top, matching git’s rebase order. Reorder rows by dragging the ⠿ handle or with the per-row ↑ / ↓ buttons.
  • Per-commit action — each row has a dropdown with the standard rebase actions: Pick, Reword, Squash, Fixup, Drop, Edit.
  • New message — choosing Reword or Squash reveals an inline text box on that row for the commit’s new message.
  • Squash selected — select several rows and click Squash selected to mark them all Squash at once. The oldest commit in the list is never marked — it has no earlier commit to squash into, so it stays Pick.

Apply runs the rebase; it is enabled once you have changed at least one action. Cancel discards the plan without touching the branch.

If a step of the rebase conflicts, Birch opens the conflict resolver automatically. Resolve the conflicted files there, then use its Continue button to carry on with the remaining steps — or Abort to roll the branch back to where it started.