Name

rebase

Synopsis

git rebase [-i] [--onto onto-commit] base-commit [switch-branch]
git rebase --continue | --skip | --abort

Automatically cherry-pick a series of commits between base-commit and switch-branch onto onto-commit, leaving the result in switch-branch.

If switch-branch is omitted, the default is HEAD. If onto-commit is omitted, the default is base-commit.

Warning

Using git rebase can completely disrupt future merges to and from the rebased branch. Use git rebase only for changing commits that have never been shared with others, such as before a new branch has been pushed to a shared repository.

git rebase is a powerful alternative to git merge. You can use it to simplify and rewrite the history of your changes in order to make them easier to review, audit, and share. However, because git rebase rewrites the history of your repository, misuse can cause hard-to-resolve errors, including duplicate commits and merge conflicts.

You can imagine git rebase as a series of commands that looks something like this:

git checkout switch-branch
git reset --hard onto-commit
for commit in base-commit..switch-branch
    git cherry-pick commit
done

The end result is a new branch that contains onto-branch plus a linear series of commits (i.e., with no merges). The new commits consist of all the commits that were previously part of switch-branch but not base-commit.

With -i, git rebase opens an interactive editor before the rebase operation starts. The editor contains a list of all the commits in base-commit ...

Get Linux in a Nutshell, 6th Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.