--all::
	Fetch all remotes.

-a::
--append::
	Append ref names and object names of fetched refs to the
	existing contents of `.git/FETCH_HEAD`.  Without this
	option old data in `.git/FETCH_HEAD` will be overwritten.

--depth=<depth>::
	Limit fetching to the specified number of commits from the tip of
	each remote branch history. If fetching to a 'shallow' repository
	created by `git clone` with `--depth=<depth>` option (see
	linkgit:git-clone[1]), deepen or shorten the history to the specified
	number of commits. Tags for the deepened commits are not fetched.

--deepen=<depth>::
	Similar to --depth, except it specifies the number of commits
	from the current shallow boundary instead of from the tip of
	each remote branch history.

--shallow-since=<date>::
	Deepen or shorten the history of a shallow repository to
	include all reachable commits after <date>.

--shallow-exclude=<revision>::
	Deepen or shorten the history of a shallow repository to
	exclude commits reachable from a specified remote branch or tag.
	This option can be specified multiple times.

--unshallow::
	If the source repository is complete, convert a shallow
	repository to a complete one, removing all the limitations
	imposed by shallow repositories.
+
If the source repository is shallow, fetch as much as possible so that
the current repository has the same history as the source repository.

--update-shallow::
	By default when fetching from a shallow repository,
	`git fetch` refuses refs that require updating
	.git/shallow. This option updates .git/shallow and accept such
	refs.

--negotiation-tip=<commit|glob>::
	By default, Git will report, to the server, commits reachable
	from all local refs to find common commits in an attempt to
	reduce the size of the to-be-received packfile. If specified,
	Git will only report commits reachable from the given tips.
	This is useful to speed up fetches when the user knows which
	local ref is likely to have commits in common with the
	upstream ref being fetched.
+
This option may be specified more than once; if so, Git will report
commits reachable from any of the given commits.
+
The argument to this option may be a glob on ref names, a ref, or the (possibly
abbreviated) SHA-1 of a commit. Specifying a glob is equivalent to specifying
this option multiple times, one for each matching ref name.
+
See also the `fetch.negotiationAlgorithm` configuration variable
documented in linkgit:git-config[1].

ifndef::git-pull[]
--dry-run::
	Show what would be done, without making any changes.
endif::git-pull[]

-f::
--force::
	When 'git fetch' is used with `<src>:<dst>` refspec it may
	refuse to update the local branch as discussed
ifdef::git-pull[]
	in the `<refspec>` part of the linkgit:git-fetch[1]
	documentation.
endif::git-pull[]
ifndef::git-pull[]
	in the `<refspec>` part below.
endif::git-pull[]
	This option overrides that check.

-k::
--keep::
	Keep downloaded pack.

ifndef::git-pull[]
--multiple::
	Allow several <repository> and <group> arguments to be
	specified. No <refspec>s may be specified.

--[no-]auto-gc::
	Run `git gc --auto` at the end to perform garbage collection
	if needed. This is enabled by default.

--[no-]write-commit-graph::
	Write a commit-graph after fetching. This overrides the config
	setting `fetch.writeCommitGraph`.

-p::
--prune::
	Before fetching, remove any remote-tracking references that no
	longer exist on the remote.  Tags are not subject to pruning
	if they are fetched only because of the default tag
	auto-following or due to a --tags option.  However, if tags
	are fetched due to an explicit refspec (either on the command
	line or in the remote configuration, for example if the remote
	was cloned with the --mirror option), then they are also
	subject to pruning. Supplying `--prune-tags` is a shorthand for
	providing the tag refspec.
+
See the PRUNING section below for more details.

-P::
--prune-tags::
	Before fetching, remove any local tags that no longer exist on
	the remote if `--prune` is enabled. This option should be used
	more carefully, unlike `--prune` it will remove any local
	references (local tags) that have been created. This option is
	a shorthand for providing the explicit tag refspec along with
	`--prune`, see the discussion about that in its documentation.
+
See the PRUNING section below for more details.

endif::git-pull[]

ifndef::git-pull[]
-n::
endif::git-pull[]
--no-tags::
	By default, tags that point at objects that are downloaded
	from the remote repository are fetched and stored locally.
	This option disables this automatic tag following. The default
	behavior for a remote may be specified with the remote.<name>.tagOpt
	setting. See linkgit:git-config[1].

ifndef::git-pull[]
--refmap=<refspec>::
	When fetching refs listed on the command line, use the
	specified refspec (can be given more than once) to map the
	refs to remote-tracking branches, instead of the values of
	`remote.*.fetch` configuration variables for the remote
	repository.  See section on "Configured Remote-tracking
	Branches" for details.

-t::
--tags::
	Fetch all tags from the remote (i.e., fetch remote tags
	`refs/tags/*` into local tags with the same name), in addition
	to whatever else would otherwise be fetched.  Using this
	option alone does not subject tags to pruning, even if --prune
	is used (though tags may be pruned anyway if they are also the
	destination of an explicit refspec; see `--prune`).

--recurse-submodules[=yes|on-demand|no]::
	This option controls if and under what conditions new commits of
	populated submodules should be fetched too. It can be used as a
	boolean option to completely disable recursion when set to 'no' or to
	unconditionally recurse into all populated submodules when set to
	'yes', which is the default when this option is used without any
	value. Use 'on-demand' to only recurse into a populated submodule
	when the superproject retrieves a commit that updates the submodule's
	reference to a commit that isn't already in the local submodule
	clone.

-j::
--jobs=<n>::
	Number of parallel children to be used for all forms of fetching.
+
If the `--multiple` option was specified, the different remotes will be fetched
in parallel. If multiple submodules are fetched, they will be fetched in
parallel. To control them independently, use the config settings
`fetch.parallel` and `submodule.fetchJobs` (see linkgit:git-config[1]).
+
Typically, parallel recursive and multi-remote fetches will be faster. By
default fetches are performed sequentially, not in parallel.

--no-recurse-submodules::
	Disable recursive fetching of submodules (this has the same effect as
	using the `--recurse-submodules=no` option).

--set-upstream::
	If the remote is fetched successfully, pull and add upstream
	(tracking) reference, used by argument-less
	linkgit:git-pull[1] and other commands. For more information,
	see `branch.<name>.merge` and `branch.<name>.remote` in
	linkgit:git-config[1].

--submodule-prefix=<path>::
	Prepend <path> to paths printed in informative messages
	such as "Fetching submodule foo".  This option is used
	internally when recursing over submodules.

--recurse-submodules-default=[yes|on-demand]::
	This option is used internally to temporarily provide a
	non-negative default value for the --recurse-submodules
	option.  All other methods of configuring fetch's submodule
	recursion (such as settings in linkgit:gitmodules[5] and
	linkgit:git-config[1]) override this option, as does
	specifying --[no-]recurse-submodules directly.
endif::git-pull[]

-u::
--update-head-ok::
	By default 'git fetch' refuses to update the head which
	corresponds to the current branch.  This flag disables the
	check.  This is purely for the internal use for 'git pull'
	to communicate with 'git fetch', and unless you are
	implementing your own Porcelain you are not supposed to
	use it.

--upload-pack <upload-pack>::
	When given, and the repository to fetch from is handled
	by 'git fetch-pack', `--exec=<upload-pack>` is passed to
	the command to specify non-default path for the command
	run on the other end.

ifndef::git-pull[]
-q::
--quiet::
	Pass --quiet to git-fetch-pack and silence any other internally
	used git commands. Progress is not reported to the standard error
	stream.

-v::
--verbose::
	Be verbose.
endif::git-pull[]

--progress::
	Progress status is reported on the standard error stream
	by default when it is attached to a terminal, unless -q
	is specified. This flag forces progress status even if the
	standard error stream is not directed to a terminal.

-o <option>::
--server-option=<option>::
	Transmit the given string to the server when communicating using
	protocol version 2.  The given string must not contain a NUL or LF
	character.  The server's handling of server options, including
	unknown ones, is server-specific.
	When multiple `--server-option=<option>` are given, they are all
	sent to the other side in the order listed on the command line.

--show-forced-updates::
	By default, git checks if a branch is force-updated during
	fetch. This can be disabled through fetch.showForcedUpdates, but
	the --show-forced-updates option guarantees this check occurs.
	See linkgit:git-config[1].

--no-show-forced-updates::
	By default, git checks if a branch is force-updated during
	fetch. Pass --no-show-forced-updates or set fetch.showForcedUpdates
	to false to skip this check for performance reasons. If used during
	'git-pull' the --ff-only option will still check for forced updates
	before attempting a fast-forward update. See linkgit:git-config[1].

-4::
--ipv4::
	Use IPv4 addresses only, ignoring IPv6 addresses.

-6::
--ipv6::
	Use IPv6 addresses only, ignoring IPv4 addresses.
