Autogenerated HTML docs for v1.3.1-g7464
authorJunio C Hamano <junio@hera.kernel.org>
Tue, 2 May 2006 07:28:06 +0000 (07:28 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Tue, 2 May 2006 07:28:06 +0000 (07:28 +0000)
git-rebase.html
git-rebase.txt

index 88addf0..63bd641 100644 (file)
@@ -266,28 +266,36 @@ git-rebase(1) Manual Page
 <h2>NAME</h2>\r
 <div class="sectionbody">\r
 <p>git-rebase -\r
-   Rebase local commits to new upstream head\r
+   Rebase local commits to a new head\r
 </p>\r
 </div>\r
 </div>\r
 <h2>SYNOPSIS</h2>\r
 <div class="sectionbody">\r
 <p><em>git-rebase</em> [--onto &lt;newbase&gt;] &lt;upstream&gt; [&lt;branch&gt;]</p>\r
+<p><em>git-rebase</em> --continue</p>\r
+<p><em>git-rebase</em> --abort</p>\r
 </div>\r
 <h2>DESCRIPTION</h2>\r
 <div class="sectionbody">\r
-<p>git-rebase applies to &lt;upstream&gt; (or optionally to &lt;newbase&gt;) commits\r
-from &lt;branch&gt; that do not appear in &lt;upstream&gt;. When &lt;branch&gt; is not\r
-specified it defaults to the current branch (HEAD).</p>\r
-<p>When git-rebase is complete, &lt;branch&gt; will be updated to point to the\r
-newly created line of commit objects, so the previous line will not be\r
-accessible unless there are other references to it already.</p>\r
+<p>git-rebase replaces &lt;branch&gt; with a new branch of the same name.  When\r
+the --onto option is provided the new branch starts out with a HEAD equal\r
+to &lt;newbase&gt;, otherwise it is equal to &lt;upstream&gt;.  It then attempts to\r
+create a new commit for each commit from the original &lt;branch&gt; that does\r
+not exist in the &lt;upstream&gt; branch.</p>\r
+<p>It is possible that a merge failure will prevent this process from being\r
+completely automatic.  You will have to resolve any such merge failure\r
+and run <tt>git rebase --continue</tt>.  If you can not resolve the merge\r
+failure, running <tt>git rebase --abort</tt> will restore the original &lt;branch&gt;\r
+and remove the working files found in the .dotest directory.</p>\r
+<p>Note that if &lt;branch&gt; is not specified on the command line, the currently\r
+checked out branch is used.</p>\r
 <p>Assume the following history exists and the current branch is "topic":</p>\r
-<div class="literalblock">\r
+<div class="listingblock">\r
 <div class="content">\r
-<pre><tt>      A---B---C topic\r
-     /\r
-D---E---F---G master</tt></pre>\r
+<pre><tt>          A---B---C topic\r
+         /\r
+    D---E---F---G master</tt></pre>\r
 </div></div>\r
 <p>From this point, the result of either of the following commands:</p>\r
 <div class="literalblock">\r
@@ -296,11 +304,11 @@ D---E---F---G master</tt></pre>
 git-rebase master topic</tt></pre>\r
 </div></div>\r
 <p>would be:</p>\r
-<div class="literalblock">\r
+<div class="listingblock">\r
 <div class="content">\r
-<pre><tt>              A'--B'--C' topic\r
-             /\r
-D---E---F---G master</tt></pre>\r
+<pre><tt>                  A'--B'--C' topic\r
+                 /\r
+    D---E---F---G master</tt></pre>\r
 </div></div>\r
 <p>While, starting from the same point, the result of either of the following\r
 commands:</p>\r
@@ -310,25 +318,31 @@ commands:</p>
 git-rebase --onto master~1 master topic</tt></pre>\r
 </div></div>\r
 <p>would be:</p>\r
-<div class="literalblock">\r
+<div class="listingblock">\r
 <div class="content">\r
-<pre><tt>          A'--B'--C' topic\r
-         /\r
-D---E---F---G master</tt></pre>\r
+<pre><tt>              A'--B'--C' topic\r
+             /\r
+    D---E---F---G master</tt></pre>\r
 </div></div>\r
 <p>In case of conflict, git-rebase will stop at the first problematic commit\r
-and leave conflict markers in the tree.  After resolving the conflict manually\r
-and updating the index with the desired resolution, you can continue the\r
-rebasing process with</p>\r
+and leave conflict markers in the tree.  You can use git diff to locate\r
+the markers (&lt;&lt;&lt;&lt;&lt;&lt;) and make edits to resolve the conflict.  For each\r
+file you edit, you need to tell git that the conflict has been resolved,\r
+typically this would be done with</p>\r
+<div class="literalblock">\r
+<div class="content">\r
+<pre><tt>git update-index &lt;filename&gt;</tt></pre>\r
+</div></div>\r
+<p>After resolving the conflict manually and updating the index with the\r
+desired resolution, you can continue the rebasing process with</p>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>git am --resolved --3way</tt></pre>\r
+<pre><tt>git rebase --continue</tt></pre>\r
 </div></div>\r
 <p>Alternatively, you can undo the git-rebase with</p>\r
 <div class="literalblock">\r
 <div class="content">\r
-<pre><tt>git reset --hard ORIG_HEAD\r
-rm -r .dotest</tt></pre>\r
+<pre><tt>git rebase --abort</tt></pre>\r
 </div></div>\r
 </div>\r
 <h2>OPTIONS</h2>\r
@@ -360,8 +374,38 @@ rm -r .dotest</tt></pre>
         Working branch; defaults to HEAD.\r
 </p>\r
 </dd>\r
+<dt>\r
+--continue\r
+</dt>\r
+<dd>\r
+<p>\r
+        Restart the rebasing process after having resolved a merge conflict.\r
+</p>\r
+</dd>\r
+<dt>\r
+--abort\r
+</dt>\r
+<dd>\r
+<p>\r
+        Restore the original branch and abort the rebase operation.\r
+</p>\r
+</dd>\r
 </dl>\r
 </div>\r
+<h2>NOTES</h2>\r
+<div class="sectionbody">\r
+<p>When you rebase a branch, you are changing its history in a way that\r
+will cause problems for anyone who already has a copy of the branch\r
+in their repository and tries to pull updates from you.  You should\r
+understand the implications of using <em>git rebase</em> on a repository that\r
+you share.</p>\r
+<p>When the git rebase command is run, it will first execute a "pre-rebase"\r
+hook if one exists.  You can use this hook to do sanity checks and\r
+reject the rebase if it isn't appropriate.  Please see the template\r
+pre-rebase hook script for an example.</p>\r
+<p>You must be in the top directory of your project to start (or continue)\r
+a rebase.  Upon completion, &lt;branch&gt; will be the current branch.</p>\r
+</div>\r
 <h2>Author</h2>\r
 <div class="sectionbody">\r
 <p>Written by Junio C Hamano &lt;junkio@cox.net&gt;</p>\r
@@ -376,7 +420,7 @@ rm -r .dotest</tt></pre>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 27-Mar-2006 07:50:56 UTC\r
+Last updated 02-May-2006 07:27:57 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 4a7e67a..1b482ab 100644 (file)
@@ -3,38 +3,54 @@ git-rebase(1)
 
 NAME
 ----
-git-rebase - Rebase local commits to new upstream head
+git-rebase - Rebase local commits to a new head
 
 SYNOPSIS
 --------
 'git-rebase' [--onto <newbase>] <upstream> [<branch>]
 
+'git-rebase' --continue
+
+'git-rebase' --abort
+
 DESCRIPTION
 -----------
-git-rebase applies to <upstream> (or optionally to <newbase>) commits
-from <branch> that do not appear in <upstream>. When <branch> is not
-specified it defaults to the current branch (HEAD).
+git-rebase replaces <branch> with a new branch of the same name.  When
+the --onto option is provided the new branch starts out with a HEAD equal
+to <newbase>, otherwise it is equal to <upstream>.  It then attempts to
+create a new commit for each commit from the original <branch> that does
+not exist in the <upstream> branch.
 
-When git-rebase is complete, <branch> will be updated to point to the
-newly created line of commit objects, so the previous line will not be
-accessible unless there are other references to it already.
+It is possible that a merge failure will prevent this process from being
+completely automatic.  You will have to resolve any such merge failure
+and run `git rebase --continue`.  If you can not resolve the merge
+failure, running `git rebase --abort` will restore the original <branch>
+and remove the working files found in the .dotest directory.
+
+Note that if <branch> is not specified on the command line, the currently
+checked out branch is used.
 
 Assume the following history exists and the current branch is "topic":
 
+------------
           A---B---C topic
          /
     D---E---F---G master
+------------
 
 From this point, the result of either of the following commands:
 
+
     git-rebase master
     git-rebase master topic
 
 would be:
 
+------------
                   A'--B'--C' topic
                  /
     D---E---F---G master
+------------
 
 While, starting from the same point, the result of either of the following
 commands:
@@ -44,21 +60,33 @@ commands:
 
 would be:
 
+------------
               A'--B'--C' topic
              /
     D---E---F---G master
+------------
 
 In case of conflict, git-rebase will stop at the first problematic commit
-and leave conflict markers in the tree.  After resolving the conflict manually
-and updating the index with the desired resolution, you can continue the
-rebasing process with
+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
+file you edit, you need to tell git that the conflict has been resolved,
+typically this would be done with
+
+
+    git update-index <filename>
+
+
+After resolving the conflict manually and updating the index with the
+desired resolution, you can continue the rebasing process with
+
+
+    git rebase --continue
 
-    git am --resolved --3way
 
 Alternatively, you can undo the git-rebase with
 
-    git reset --hard ORIG_HEAD
-    rm -r .dotest
+
+    git rebase --abort
 
 OPTIONS
 -------
@@ -73,6 +101,28 @@ OPTIONS
 <branch>::
        Working branch; defaults to HEAD.
 
+--continue::
+       Restart the rebasing process after having resolved a merge conflict.
+
+--abort::
+       Restore the original branch and abort the rebase operation.
+
+NOTES
+-----
+When you rebase a branch, you are changing its history in a way that
+will cause problems for anyone who already has a copy of the branch
+in their repository and tries to pull updates from you.  You should
+understand the implications of using 'git rebase' on a repository that
+you share.
+
+When the git rebase command is run, it will first execute a "pre-rebase"
+hook if one exists.  You can use this hook to do sanity checks and
+reject the rebase if it isn't appropriate.  Please see the template
+pre-rebase hook script for an example.
+
+You must be in the top directory of your project to start (or continue)
+a rebase.  Upon completion, <branch> will be the current branch.
+
 Author
 ------
 Written by Junio C Hamano <junkio@cox.net>