Home Explore Blog CI



git

3rd chunk of `Documentation/fetch-options.adoc`
623302bfb6f2d0b6f1b1b2467c325892dc54a4bbac95da010000000100000ce2
 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[]
--refetch::
	Instead of negotiating with the server to avoid transferring commits and
	associated objects that are already present locally, this option fetches
	all objects as a fresh clone would. Use this to reapply a partial clone
	filter from configuration or using `--filter=` when the filter
	definition has changed. Automatic post-fetch maintenance will perform
	object database pack consolidation to remove any duplicate objects.
endif::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.  Providing an empty `<refspec>` to the
	`--refmap` option causes Git to ignore the configured
	refspecs and rely entirely on the refspecs supplied as
	command-line arguments. 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`).

ifndef::git-pull[]
--recurse-submodules[=(yes|on-demand|no)]::
	This option controls if and under what conditions new commits of
	submodules should be fetched too. When recursing through submodules,
	`git fetch` always attempts to fetch "changed" submodules, that is, a
	submodule that has commits that are referenced by a newly fetched
	superproject commit but are missing in the local submodule clone. A
	changed submodule can be fetched as long as it is present locally e.g.
	in `$GIT_DIR/modules/` (see linkgit:gitsubmodules[7]); if the upstream
	adds a new submodule, that submodule cannot be fetched until it is
	cloned e.g. by `git submodule update`.
+
When set to 'on-demand', only changed submodules are fetched. When set
to 'yes', all populated submodules are fetched and submodules that are
both unpopulated and changed are fetched. When set to 'no', submodules
are never fetched.
+
When unspecified, this uses the value of `fetch.recurseSubmodules` if it
is set (see linkgit:git-config[1]), defaulting to 'on-demand' if unset.
When this option is used without any value, it defaults to 'yes'.
endif::git-pull[]

-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.

ifndef::git-pull[]
--no-recurse-submodules::
	Disable recursive fetching

Title: Git Fetch Command Options for Tags and Submodules
Summary
The git fetch command has options to control the fetching of tags and submodules, including disabling automatic tag following, fetching all tags, and controlling the recursive fetching of submodules, as well as options to control parallelism and job count for fetching multiple remotes and submodules.