Git Rebase Cheat Sheet/Rebase preserving merges

Maintain merge structure while rebasing.

Section: Common Rebase Workflows

Rebase preserving merges

bash
bash
git rebase --rebase-merges main
Explanation

A more advanced option when branch history contains meaningful merges that should not be flattened.

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 Common Rebase Workflows
Rebase current branch onto main
Replay your branch on top of the latest main.
OpenIn sheetbashsame section
Fetch and rebase instead of merge
Update your current branch with a linear pull strategy.
OpenIn sheetbashsame section
Transplant a subset of commits
Move only part of a branch to a new base.
OpenIn sheetbashsame section
Rebase with autostash
Temporarily stash dirty worktree changes before rebasing.
OpenIn sheetbashsame section
Rewrite history from the root commit
Run interactive rebase from the start of the repository.
OpenIn sheetbashsame section
Interactive rebase last 3 commits
Edit the last 3 commits.
OpenIn sheetbash2 tag match