Home Explore Blog CI



git

2nd chunk of `Documentation/git-pull.adoc`
de07f4e95982e50b9ba886164f154b8a25daf468144f578c0000000100000a7e
 fetched, and if the working trees of active submodules should be
	updated, too (see linkgit:git-fetch[1], linkgit:git-config[1] and
	linkgit:gitmodules[5]).
+
If the checkout is done via rebase, local submodule commits are rebased as well.
+
If the update is done via merge, the submodule conflicts are resolved and checked out.

Options related to merging
~~~~~~~~~~~~~~~~~~~~~~~~~~

:git-pull: 1

include::merge-options.adoc[]

-r::
--rebase[=(false|true|merges|interactive)]::
	When true, rebase the current branch on top of the upstream
	branch after fetching. If there is a remote-tracking branch
	corresponding to the upstream branch and the upstream branch
	was rebased since last fetched, the rebase uses that information
	to avoid rebasing non-local changes.
+
When set to `merges`, rebase using `git rebase --rebase-merges` so that
the local merge commits are included in the rebase (see
linkgit:git-rebase[1] for details).
+
When false, merge the upstream branch into the current branch.
+
When `interactive`, enable the interactive mode of rebase.
+
See `pull.rebase`, `branch.<name>.rebase` and `branch.autoSetupRebase` in
linkgit:git-config[1] if you want to make `git pull` always use
`--rebase` instead of merging.
+
[NOTE]
This is a potentially _dangerous_ mode of operation.
It rewrites history, which does not bode well when you
published that history already.  Do *not* use this option
unless you have read linkgit:git-rebase[1] carefully.

--no-rebase::
	This is shorthand for --rebase=false.

Options related to fetching
~~~~~~~~~~~~~~~~~~~~~~~~~~~

include::fetch-options.adoc[]

include::pull-fetch-param.adoc[]

include::urls-remotes.adoc[]

include::merge-strategies.adoc[]

DEFAULT BEHAVIOUR
-----------------

Often people use `git pull` without giving any parameter.
Traditionally, this has been equivalent to saying `git pull
origin`.  However, when configuration `branch.<name>.remote` is
present while on branch `<name>`, that value is used instead of
`origin`.

In order to determine what URL to use to fetch from, the value
of the configuration `remote.<origin>.url` is consulted
and if there is not any such variable, the value on the `URL:` line
in `$GIT_DIR/remotes/<origin>` is used.

In order to determine what remote branches to fetch (and
optionally store in the remote-tracking branches) when the command is
run without any refspec parameters on the command line, values
of the configuration variable `remote.<origin>.fetch` are
consulted, and if there aren't any, `$GIT_DIR/remotes/<origin>`
is consulted and its `Pull:` lines are used.
In addition to the refspec formats described in the OPTIONS
section, you can have a globbing refspec that

Title: Git Pull Options and Default Behavior
Summary
The git-pull command provides various options for customizing the fetching and merging process, including options for rebasing, merging, and fetching, as well as default behavior for determining the remote repository and branches to fetch when no parameters are specified.