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 dialog
Section titled “The dialog”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.
Conflicts mid-rebase
Section titled “Conflicts mid-rebase”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.