===== 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]