aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/git-pull.txt
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2021-08-30 16:06:01 -0700
committerJunio C Hamano <gitster@pobox.com>2021-08-30 16:06:01 -0700
commit7d0daf3f12f87799a3b3f524933ef6c15d1f28c3 (patch)
treeeca75e171dba696509e72c6bdb2cc31fdce65529 /Documentation/git-pull.txt
parentc4203212e360b25a1c69467b5a8437d45a373cac (diff)
parent6f843a3355ee590dfe09eb90679051e75fadf675 (diff)
downloadgit-7d0daf3f12f87799a3b3f524933ef6c15d1f28c3.tar.gz
Merge branch 'en/pull-conflicting-options'
"git pull" had various corner cases that were not well thought out around its --rebase backend, e.g. "git pull --ff-only" did not stop but went ahead and rebased when the history on other side is not a descendant of our history. The series tries to fix them up. * en/pull-conflicting-options: pull: fix handling of multiple heads pull: update docs & code for option compatibility with rebasing pull: abort by default when fast-forwarding is not possible pull: make --rebase and --no-rebase override pull.ff=only pull: since --ff-only overrides, handle it first pull: abort if --ff-only is given and fast-forwarding is impossible t7601: add tests of interactions with multiple merge heads and config t7601: test interaction of merge/rebase/fast-forward flags and options
Diffstat (limited to 'Documentation/git-pull.txt')
-rw-r--r--Documentation/git-pull.txt21
1 files changed, 12 insertions, 9 deletions
diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt
index 7f4b2d1982..aef757ec89 100644
--- a/Documentation/git-pull.txt
+++ b/Documentation/git-pull.txt
@@ -15,14 +15,17 @@ SYNOPSIS
DESCRIPTION
-----------
-Incorporates changes from a remote repository into the current
-branch. In its default mode, `git pull` is shorthand for
-`git fetch` followed by `git merge FETCH_HEAD`.
-
-More precisely, 'git pull' runs 'git fetch' with the given
-parameters and calls 'git merge' to merge the retrieved branch
-heads into the current branch.
-With `--rebase`, it runs 'git rebase' instead of 'git merge'.
+Incorporates changes from a remote repository into the current branch.
+If the current branch is behind the remote, then by default it will
+fast-forward the current branch to match the remote. If the current
+branch and the remote have diverged, the user needs to specify how to
+reconcile the divergent branches with `--rebase` or `--no-rebase` (or
+the corresponding configuration option in `pull.rebase`).
+
+More precisely, `git pull` runs `git fetch` with the given parameters
+and then depending on configuration options or command line flags,
+will call either `git rebase` or `git merge` to reconcile diverging
+branches.
<repository> should be the name of a remote repository as
passed to linkgit:git-fetch[1]. <refspec> can name an
@@ -132,7 +135,7 @@ published that history already. Do *not* use this option
unless you have read linkgit:git-rebase[1] carefully.
--no-rebase::
- Override earlier --rebase.
+ This is shorthand for --rebase=false.
Options related to fetching
~~~~~~~~~~~~~~~~~~~~~~~~~~~