* Rephrase "duplicates of commits" to clarify that in step 2, rebase is using git patch-id (or the equivalent) to compare commits instead of using the SHA. * wrap some text correctly * s/git checkout -C/git checkout -B/ Julia Evans (5): doc: git-rebase: start with an example doc: git rebase: dedup merge conflict discussion doc: git rebase: clarify arguments syntax doc: git-rebase: move --onto explanation down doc: git-rebase: update discussion of internals Documentation/git-rebase.adoc | 304 +++++++++++++++------------------- 1 file changed, 138 insertions(+), 166 deletions(-) base-commit: 2c2ba49d55ff26c1082b8137b1ec5eeccb4337d1 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1949%2Fjvns%2Fclarify-rebase-v7 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1949/jvns/clarify-rebase-v7 Pull-Request: https://github.com/gitgitgadget/git/pull/1949 Range-diff vs v6: 1: e7a8fbbe53c = 1: e7a8fbbe53c doc: git-rebase: start with an example 2: ad63f69918d = 2: ad63f69918d doc: git rebase: dedup merge conflict discussion 3: 7ee6b0afe88 = 3: 7ee6b0afe88 doc: git rebase: clarify arguments syntax 4: 4686417b28e = 4: 4686417b28e doc: git-rebase: move --onto explanation down 5: 9c7f2716bc8 ! 5: 79f29ad1e68 doc: git-rebase: update discussion of internals @@ Documentation/git-rebase.adoc: linkgit:git-config[1] for details) and the `--for + off from `<upstream>`. This is the same set of commits that would be shown + by `git log <upstream>..HEAD`. You can use `--fork-point` or `--root` to + change how this list of commits is constructed. -+2. Check whether any of those commits are duplicates of commits already -+ in `<upstream>` and remove them from the list. -+3. Check out `<upstream>` with the equivalent of `git checkout --detach <upstream>`. ++2. Check whether any of those commits contain the same changes (according to ++ `git patch-id`) as a commit already in `<upstream>` and remove them from ++ the list. ++3. Check out `<upstream>` with the equivalent of ++ `git checkout --detach <upstream>`. +4. Replay the commits, one by one, in order. This is similar to running + `git cherry-pick <commit>` for each commit. See REBASING MERGES for how merges + are handled. +5. Update your branch to point to the final commit with the equivalent -+ of `git checkout -C <branch>`. ++ of `git checkout -B <branch>`. [NOTE] -`ORIG_HEAD` is not guaranteed to still point to the previous branch tip -- gitgitgadget