Move a branch from one base commit or branch to another.
Section: History Rewriting
Rebase a branch onto a new base
bash
bash
git rebase --onto main old-base featureExplanation
`--onto` is the advanced rebase form for transplanting a branch or a subset of commits onto a different base.
Learn the surrounding workflow
Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.
Related commands
Same sheet · prioritizing History Rewriting
Interactive rebase last 5 commits
Open the last 5 commits in the interactive rebase todo list.
Interactive rebase preserving merges
Rebase while preserving merge topology.
Amend last commit without changing message
Replace the most recent commit using the current staged changes.
Rewrite history to keep a subdirectory
Create a new history containing only one subdirectory.
Cherry-pick a range without committing
Apply commit changes into the index and working tree first.
Start a bisect session
Begin a binary search to find the commit that introduced a bug.