summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon A. Eugster <simon.eugster@eps.ch>2015-07-10 13:07:11 -0700
committerJunio C Hamano <gitster@pobox.com>2015-07-12 09:28:24 -0700
commitf30301657b68561392d910f6196380dd3976549e (patch)
tree2454ea789086eb632ea3d5c6c2cca00273691363
parentfdf96a20acf96a6ac538df8113b2aafd6ed71d50 (diff)
downloadgit-se/doc-checkout-ours-theirs.tar.gz
checkout: document subtlety around --ours/--theirsse/doc-checkout-ours-theirs
During a 'rebase' (hence 'pull --rebase'), --ours/--theirs may appear to be swapped to those who are not aware of the fact that they are temporarily playing the role of the keeper of the more authoritative history. Add a note to clarify. Helped-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Simon A. Eugster <simon.eugster@eps.ch> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--Documentation/git-checkout.txt15
1 files changed, 15 insertions, 0 deletions
diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt
index 33ad2adf5c..d74d605574 100644
--- a/Documentation/git-checkout.txt
+++ b/Documentation/git-checkout.txt
@@ -116,6 +116,21 @@ entries; instead, unmerged entries are ignored.
--theirs::
When checking out paths from the index, check out stage #2
('ours') or #3 ('theirs') for unmerged paths.
++
+Note that during `git rebase` and `git pull --rebase`, 'ours' and
+'theirs' may appear swapped; `--ours` gives the version from the
+branch the changes are rebased onto, while `--theirs` gives the
+version from the branch that holds your work that is being rebased.
++
+This is because `rebase` is used in a workflow that treats the
+history at the remote as the shared canonical one, and treats the
+work done on the branch you are rebasing as the third-party work to
+be integrated, and you are temporarily assuming the role of the
+keeper of the canonical history during the rebase. As the keeper of
+the canonical history, you need to view the history from the remote
+as `ours` (i.e. "our shared canonical history"), while what you did
+on your side branch as `theirs` (i.e. "one contributor's work on top
+of it").
-b <new_branch>::
Create a new branch named <new_branch> and start it at