X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;ds=inline;f=Documentation%2Fgit-rebase.txt;h=e4326d3322d45fafbc03ff96a696efc092c12522;hb=784c099a30368af4238e2713e6220688119239a1;hp=e8e75790fc21b403f428b8cca72ab42a072e1b38;hpb=fed276e7524d6a80ae5dec037d586bd28543fc79;p=git.git diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index e8e75790f..e4326d332 100644 --- a/Documentation/git-rebase.txt +++ b/Documentation/git-rebase.txt @@ -28,7 +28,10 @@ The current branch is reset to , or if the `git reset --hard ` (or ). The commits that were previously saved into the temporary area are -then reapplied to the current branch, one by one, in order. +then reapplied to the current branch, one by one, in order. Note that +any commits in HEAD which introduce the same textual changes as a commit +in HEAD.. are omitted (i.e., a patch already accepted upstream +with a different commit message or timestamp will be skipped). It is possible that a merge failure will prevent this process from being completely automatic. You will have to resolve any such merge failure @@ -62,6 +65,26 @@ would be: The latter form is just a short-hand of `git checkout topic` followed by `git rebase master`. +If the upstream branch already contains a change you have made (e.g., +because you mailed a patch which was applied upstream), then that commit +will be skipped. For example, running `git-rebase master` on the +following history (in which A' and A introduce the same set of changes, +but have different committer information): + +------------ + A---B---C topic + / + D---E---A'---F master +------------ + +will result in: + +------------ + B'---C' topic + / + D---E---A'---F master +------------ + Here is how you would transplant a topic branch based on one branch to another, to pretend that you forked the topic branch from the latter branch, using `rebase --onto`.