===== Overview =====
Simple and advanced examples of rebasing.
===== SYNOPSIS =====
$ git rebase [-i | --interactive] []
[--exec ] [--onto ]
[ []]
$ git rebase [-i | --interactive] []
[--exec ] [--onto ]
--root []
-
$ git rebase --continue | --skip | --abort | --quit |
--edit-todo | --show-current-patch
===== The fundamental rebase operation =====
Three components define a rebase:
* the //branch// to be rebased
* the amount of that branch to be rebased
* the target //commit// onto which to rebase
===== Examples =====
==== Simple example ====
A---B---C topic
/
D---E---F---G master
One of:
$ git checkout topic
$ git rebase master
or:
$ git rebase master topic
A'--B'--C' topic
/
D---E---F---G master
==== Example requiring "--onto newbase" ====
o---o---o---o---o master
\
o---o---o---o---o next
\
o---o---o topic
$ git rebase --onto master next topic
o---o---o topic
/
o---o---o---o---o master
\
o---o---o---o---o next
==== Removing a sequence of commits =====
Given:
A <--- B <--- C <--- D <--- E <--- F [HEAD]
we could remove C and D with:
$ git rebase --onto B D [HEAD]
to get:
A <--- B <--- E' <--- F' [HEAD]