--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>::
	Deepen the history of a 'shallow' repository created by
	`git clone` with `--depth=<depth>` option (see linkgit:git-clone[1])
	by the specified number of commits.

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 `<rbranch>:<lbranch>`
	refspec, it refuses to update the local branch
	`<lbranch>` unless the remote branch `<rbranch>` it
	fetches is a descendant of `<lbranch>`.  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.

-p::
--prune::
	After fetching, remove any remote tracking branches which
	no longer exist	on the remote.
endif::git-pull[]

ifdef::git-pull[]
--no-tags::
endif::git-pull[]
ifndef::git-pull[]
-n::
--no-tags::
endif::git-pull[]
	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[]
-t::
--tags::
	Most of the tags are fetched automatically as branch
	heads are downloaded, but tags that do not point at
	objects reachable from the branch heads that are being
	tracked will not be fetched by this mechanism.  This
	flag lets all tags and their associated objects be
	downloaded. The default behavior for a remote may be
	specified with the remote.<name>.tagopt setting. See
	linkgit:git-config[1].
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.
