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.
# To rebase the current branch on top of the master branch:
git rebase <master>
# To start an interactive rebase, which allows the commits to be reordered, omitted, combined or modified:
git rebase -i <target_base_branch_or_commit_hash>
# To continue a rebase that was interrupted by a merge failure, after editing conflicting files:
git rebase --continue
# To continue a rebase that was paused due to merge conflicts, by skipping the conflicted commit:
git rebase --skip
# To abort a rebase in progress (e.g. if it is interrupted by a merge conflict):
git rebase --abort
# To move part of the current branch onto a new base, providing the old base to start from:
git rebase --onto <new_base> <old_base>
# To reapply the last 5 commits in-place, stopping to allow them to be reordered, omitted, combined or modified:
git rebase -i <HEAD~5>
# To auto-resolve any conflicts by favoring the working branch version ('theirs' keyword has reversed meaning in this case):
git rebase -X theirs <master>