t4200: skip gc-rerere test on systems with non GNU date.
[gitweb.git] / Documentation / git-rebase.txt
index 03e867a403a034e49e63fc0123970b44a199e8b5..977f661b9d7a1b92d27959429c48450a416c08b8 100644 (file)
@@ -3,7 +3,7 @@ git-rebase(1)
 
 NAME
 ----
-git-rebase - Rebase local commits to a new head
+git-rebase - Forward-port local commits to the updated upstream head
 
 SYNOPSIS
 --------
@@ -114,6 +114,27 @@ would result in:
 
 This is useful when topicB does not depend on topicA.
 
+A range of commits could also be removed with rebase.  If we have
+the following situation:
+
+------------
+    E---F---G---H---I---J  topicA
+------------
+
+then the command
+
+    git-rebase --onto topicA~5 topicA~2 topicA
+
+would result in the removal of commits F and G:
+
+------------
+    E---H'---I'---J'  topicA
+------------
+
+This is useful if F and G were flawed in some way, or should not be
+part of topicA.  Note that the argument to --onto and the <upstream>
+parameter can be any valid commit-ish.
+
 In case of conflict, git-rebase will stop at the first problematic commit
 and leave conflict markers in the tree.  You can use git diff to locate
 the markers (<<<<<<) and make edits to resolve the conflict.  For each
@@ -141,10 +162,12 @@ OPTIONS
 <newbase>::
        Starting point at which to create the new commits. If the
        --onto option is not specified, the starting point is
-       <upstream>.
+       <upstream>.  May be any valid commit, and not just an
+       existing branch name.
 
 <upstream>::
-       Upstream branch to compare against.
+       Upstream branch to compare against.  May be any valid commit,
+       not just an existing branch name.
 
 <branch>::
        Working branch; defaults to HEAD.