Link Search Menu Expand Document

git rebase

Reapply commits from one branch on top of another branch. Commonly used to "move" an entire branch to another base, creating copies of the commits in the new location. More information: https://git-scm.com/docs/git-rebase.

  • Rebase the current branch on top of another specified branch:

git rebase {{new_base_branch}}

  • Start an interactive rebase, which allows the commits to be reordered, omitted, combined or modified:

git rebase {{-i|--interactive}} {{target_base_branch_or_commit_hash}}

  • Continue a rebase that was interrupted by a merge failure, after editing conflicting files:

git rebase --continue

  • Continue a rebase that was paused due to merge conflicts, by skipping the conflicted commit:

git rebase --skip

  • Abort a rebase in progress (e.g. if it is interrupted by a merge conflict):

git rebase --abort

  • Move part of the current branch onto a new base, providing the old base to start from:

git rebase --onto {{new_base}} {{old_base}}

  • Reapply the last 5 commits in-place, stopping to allow them to be reordered, omitted, combined or modified:

git rebase {{-i|--interactive}} {{HEAD~5}}

  • Auto-resolve any conflicts by favoring the working branch version (theirs keyword has reversed meaning in this case):

git rebase {{-X|--strategy-option}} theirs {{branch_name}}