git rebase [-i] [--onto
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.
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 ...