Merge branch 'pw/p4-various-fixes'
[git] / Documentation / fetch-options.txt
1 --all::
2         Fetch all remotes.
3
4 -a::
5 --append::
6         Append ref names and object names of fetched refs to the
7         existing contents of `.git/FETCH_HEAD`.  Without this
8         option old data in `.git/FETCH_HEAD` will be overwritten.
9
10 --depth=<depth>::
11         Deepen the history of a 'shallow' repository created by
12         `git clone` with `--depth=<depth>` option (see linkgit:git-clone[1])
13         to the specified number of commits from the tip of each remote
14         branch history. Tags for the deepened commits are not fetched.
15
16 ifndef::git-pull[]
17 --dry-run::
18         Show what would be done, without making any changes.
19 endif::git-pull[]
20
21 -f::
22 --force::
23         When 'git fetch' is used with `<rbranch>:<lbranch>`
24         refspec, it refuses to update the local branch
25         `<lbranch>` unless the remote branch `<rbranch>` it
26         fetches is a descendant of `<lbranch>`.  This option
27         overrides that check.
28
29 -k::
30 --keep::
31         Keep downloaded pack.
32
33 ifndef::git-pull[]
34 --multiple::
35         Allow several <repository> and <group> arguments to be
36         specified. No <refspec>s may be specified.
37
38 -p::
39 --prune::
40         After fetching, remove any remote-tracking branches which
41         no longer exist on the remote.
42 endif::git-pull[]
43
44 ifdef::git-pull[]
45 --no-tags::
46 endif::git-pull[]
47 ifndef::git-pull[]
48 -n::
49 --no-tags::
50 endif::git-pull[]
51         By default, tags that point at objects that are downloaded
52         from the remote repository are fetched and stored locally.
53         This option disables this automatic tag following. The default
54         behavior for a remote may be specified with the remote.<name>.tagopt
55         setting. See linkgit:git-config[1].
56
57 ifndef::git-pull[]
58 -t::
59 --tags::
60         Most of the tags are fetched automatically as branch
61         heads are downloaded, but tags that do not point at
62         objects reachable from the branch heads that are being
63         tracked will not be fetched by this mechanism.  This
64         flag lets all tags and their associated objects be
65         downloaded. The default behavior for a remote may be
66         specified with the remote.<name>.tagopt setting. See
67         linkgit:git-config[1].
68
69 --recurse-submodules[=yes|on-demand|no]::
70         This option controls if and under what conditions new commits of
71         populated submodules should be fetched too. It can be used as a
72         boolean option to completely disable recursion when set to 'no' or to
73         unconditionally recurse into all populated submodules when set to
74         'yes', which is the default when this option is used without any
75         value. Use 'on-demand' to only recurse into a populated submodule
76         when the superproject retrieves a commit that updates the submodule's
77         reference to a commit that isn't already in the local submodule
78         clone.
79
80 --no-recurse-submodules::
81         Disable recursive fetching of submodules (this has the same effect as
82         using the '--recurse-submodules=no' option).
83
84 --submodule-prefix=<path>::
85         Prepend <path> to paths printed in informative messages
86         such as "Fetching submodule foo".  This option is used
87         internally when recursing over submodules.
88
89 --recurse-submodules-default=[yes|on-demand]::
90         This option is used internally to temporarily provide a
91         non-negative default value for the --recurse-submodules
92         option.  All other methods of configuring fetch's submodule
93         recursion (such as settings in linkgit:gitmodules[5] and
94         linkgit:git-config[1]) override this option, as does
95         specifying --[no-]recurse-submodules directly.
96 endif::git-pull[]
97
98 -u::
99 --update-head-ok::
100         By default 'git fetch' refuses to update the head which
101         corresponds to the current branch.  This flag disables the
102         check.  This is purely for the internal use for 'git pull'
103         to communicate with 'git fetch', and unless you are
104         implementing your own Porcelain you are not supposed to
105         use it.
106
107 --upload-pack <upload-pack>::
108         When given, and the repository to fetch from is handled
109         by 'git fetch-pack', '--exec=<upload-pack>' is passed to
110         the command to specify non-default path for the command
111         run on the other end.
112
113 ifndef::git-pull[]
114 -q::
115 --quiet::
116         Pass --quiet to git-fetch-pack and silence any other internally
117         used git commands. Progress is not reported to the standard error
118         stream.
119
120 -v::
121 --verbose::
122         Be verbose.
123 endif::git-pull[]
124
125 --progress::
126         Progress status is reported on the standard error stream
127         by default when it is attached to a terminal, unless -q
128         is specified. This flag forces progress status even if the
129         standard error stream is not directed to a terminal.