---
Documentation/git-checkout.txt | 39 +++++++++++++++++++++++++++++++++++----
1 file changed, 35 insertions(+), 4 deletions(-)
diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt
index 5c3ef86..ec0be28 100644
--- a/Documentation/git-checkout.txt
+++ b/Documentation/git-checkout.txt
@@ -116,10 +116,41 @@ entries; instead, unmerged entries are ignored.
--theirs::
When checking out paths from the index, check out stage #2
('ours', HEAD) or #3 ('theirs', MERGE_HEAD) for unmerged paths.
-+
-After a `git pull --rebase`, for example, 'ours' points to the remote
-version and 'theirs' points to the local version. See linkgit:git-merge[1]
-for details about stages #2 and #3.
+ See linkgit:git-merge[1] for details about stages #2 and #3.
++
+Note that during `git rebase` and `git pull --rebase`, 'theirs' checks out
+the local version, and 'ours' the remote version or the history that is rebased
+against.
++
+The reason ours/theirs appear to be swapped during a rebase is that we
+define the remote history as the canonical history, on top of which our
+private commits are applied on, as opposed to normal merging where the
+local history is the canonical one.
+During merging, we assume the role of the canonical history’s keeper,
+which, in case of a rebase, is the remote history, and our private commits
+look to the keeper as “their” commits which need to be integrated on top
+of “our” work.
++
+Normal merging:
+------------
+local ---------abC <-- canonical history
+ | git checkout --ours
+ v
+MERGE ---------abC
+ ^
+ | git checkout --theirs
+origin/master ---Xyz
+------------
+Rebasing:
+------------
+local -----------Abc
+ | git checkout --theirs
+ v
+REBASE --------xyZ
+ ^
+ | git checkout --ours
+origin/master -xyZ <-- canonical history
+------------
-b <new_branch>::
Create a new branch named <new_branch> and start it at
--
1.8.5.1
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html