X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-rebase.html;h=63bd641a46f63e69a673c9bccc34b637c728c171;hb=6112cadb5b8a815a65e9924344a663ee16c6723f;hp=8252b8a1c4f547a0ff70755d265426f81bf71e5d;hpb=0107892cfadf8a2ef6989005b4a2efd94df310aa;p=git.git diff --git a/git-rebase.html b/git-rebase.html index 8252b8a1..63bd641a 100644 --- a/git-rebase.html +++ b/git-rebase.html @@ -266,43 +266,51 @@ git-rebase(1) Manual Page

NAME

git-rebase - - Rebase local commits to new upstream head + 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).

-

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.

+

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.

+

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
+
          A---B---C topic
+         /
+    D---E---F---G master
-

From this point, the result of the following commands:

+

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
+
                  A'--B'--C' topic
+                 /
+    D---E---F---G master
-

While, starting from the same point, the result of the following +

While, starting from the same point, the result of either of the following commands:

@@ -310,11 +318,31 @@ commands:

git-rebase --onto master~1 master topic

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. 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

-
          A'--B'--C' topic
-         /
-D---E---F---G master
+
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
+
+

Alternatively, you can undo the git-rebase with

+
+
+
git rebase --abort

OPTIONS

@@ -339,15 +367,45 @@ D---E---F---G master

-<head> +<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>

@@ -362,7 +420,7 @@ D---E---F---G master