path.c: refactor relative_path(), not only strip prefix
[gitweb.git] / Documentation / fetch-options.txt
index 39bf77fbef2f7b0b113ad7c478fa260f6984f0cb..9cb649673d609c3b27b46ae5dd217edfcc28a5a9 100644 (file)
--a, \--append::
+--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.
 
-\--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.
+--depth=<depth>::
+       Deepen or shorten the history of a 'shallow' repository created by
+       `git clone` with `--depth=<depth>` option (see linkgit:git-clone[1])
+       to the specified number of commits from the tip of each remote
+       branch history. Tags for the deepened commits are not fetched.
+
+--unshallow::
+       Convert a shallow repository to a complete one, removing all
+       the limitations imposed by shallow repositories.
 
--f, \--force::
-       When `git-fetch` is used with `<rbranch>:<lbranch>`
+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.
 
-\--no-tags::
-       By default, `git-fetch` fetches tags that point at
-       objects that are downloaded from the remote repository
-       and stores them locally.  This option disables this
-       automatic tag following.
-
--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.
-
--k, \--keep::
+-k::
+--keep::
        Keep downloaded pack.
 
--u, \--update-head-ok::
-       By default `git-fetch` refuses to update the head which
+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::
+       This is a short-hand for giving "refs/tags/*:refs/tags/*"
+       refspec from the command line, to ask all tags to be fetched
+       and stored locally.  Because this acts as an explicit
+       refspec, the default refspecs (configured with the
+       remote.$name.fetch variable) are overridden and not used.
+
+--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.
+
+--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
+       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.