mirror of
https://github.com/git/git.git
synced 2024-12-14 20:33:46 +08:00
a460ea4a3c
The existing "git fetch --depth=<n>" option was hard to use correctly when making the history of an existing shallow clone deeper. A new option, "--deepen=<n>", has been added to make this easier to use. "git clone" also learned "--shallow-since=<date>" and "--shallow-exclude=<tag>" options to make it easier to specify "I am interested only in the recent N months worth of history" and "Give me only the history since that version". * nd/shallow-deepen: (27 commits) fetch, upload-pack: --deepen=N extends shallow boundary by N commits upload-pack: add get_reachable_list() upload-pack: split check_unreachable() in two, prep for get_reachable_list() t5500, t5539: tests for shallow depth excluding a ref clone: define shallow clone boundary with --shallow-exclude fetch: define shallow boundary with --shallow-exclude upload-pack: support define shallow boundary by excluding revisions refs: add expand_ref() t5500, t5539: tests for shallow depth since a specific date clone: define shallow clone boundary based on time with --shallow-since fetch: define shallow boundary with --shallow-since upload-pack: add deepen-since to cut shallow repos based on time shallow.c: implement a generic shallow boundary finder based on rev-list fetch-pack: use a separate flag for fetch in deepening mode fetch-pack.c: mark strings for translating fetch-pack: use a common function for verbose printing fetch-pack: use skip_prefix() instead of starts_with() upload-pack: move rev-list code out of check_non_tip() upload-pack: make check_non_tip() clean things up on error upload-pack: tighten number parsing at "deepen" lines ...
183 lines
6.2 KiB
Plaintext
183 lines
6.2 KiB
Plaintext
--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.
|
|
|
|
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::
|
|
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.
|
|
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 fetching submodules.
|
|
Each will fetch from different submodules, such that fetching many
|
|
submodules will be faster. By default submodules will be fetched
|
|
one at a time.
|
|
|
|
--no-recurse-submodules::
|
|
Disable recursive fetching of submodules (this has the same effect as
|
|
using the `--recurse-submodules=no` option).
|
|
|
|
--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.
|
|
|
|
-4::
|
|
--ipv4::
|
|
Use IPv4 addresses only, ignoring IPv6 addresses.
|
|
|
|
-6::
|
|
--ipv6::
|
|
Use IPv6 addresses only, ignoring IPv4 addresses.
|