summaryrefslogtreecommitdiff
path: root/Documentation/git-fetch.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/git-fetch.txt')
-rw-r--r--Documentation/git-fetch.txt76
1 files changed, 60 insertions, 16 deletions
diff --git a/Documentation/git-fetch.txt b/Documentation/git-fetch.txt
index a9e86fd26b..b41d7c1de1 100644
--- a/Documentation/git-fetch.txt
+++ b/Documentation/git-fetch.txt
@@ -3,23 +3,39 @@ git-fetch(1)
NAME
----
-git-fetch - Download objects and a head from another repository
+git-fetch - Download objects and refs from another repository
SYNOPSIS
--------
-'git-fetch' <options> <repository> <refspec>...
+[verse]
+'git fetch' [<options>] [<repository> [<refspec>...]]
+'git fetch' [<options>] <group>
+'git fetch' --multiple [<options>] [(<repository> | <group>)...]
+'git fetch' --all [<options>]
DESCRIPTION
-----------
-Fetches named heads or tags from another repository, along with
-the objects necessary to complete them.
+Fetches named heads or tags from one or more other repositories,
+along with the objects necessary to complete them.
The ref names and their object names of fetched refs are stored
in `.git/FETCH_HEAD`. This information is left for a later merge
-operation done by "git merge".
+operation done by 'git merge'.
+When <refspec> stores the fetched result in remote-tracking branches,
+the tags that point at these branches are automatically
+followed. This is done by first fetching from the remote using
+the given <refspec>s, and if the repository has objects that are
+pointed by remote tags that it does not yet have, then fetch
+those missing tags. If the other end has tags that point at
+branches you are not interested in, you will not get them.
+
+'git fetch' can fetch from either a single named repository,
+or from several repositories at once if <group> is given and
+there is a remotes.<group> entry in the configuration file.
+(See linkgit:git-config[1]).
OPTIONS
-------
@@ -27,22 +43,50 @@ include::fetch-options.txt[]
include::pull-fetch-param.txt[]
-include::urls.txt[]
+include::urls-remotes.txt[]
-SEE ALSO
+
+EXAMPLES
--------
-gitlink:git-pull[1]
+* Update the remote-tracking branches:
++
+------------------------------------------------
+$ git fetch origin
+------------------------------------------------
++
+The above command copies all branches from the remote refs/heads/
+namespace and stores them to the local refs/remotes/origin/ namespace,
+unless the branch.<name>.fetch option is used to specify a non-default
+refspec.
+
+* Using refspecs explicitly:
++
+------------------------------------------------
+$ git fetch origin +pu:pu maint:tmp
+------------------------------------------------
++
+This updates (or creates, as necessary) branches `pu` and `tmp` in
+the local repository by fetching from the branches (respectively)
+`pu` and `maint` from the remote repository.
++
+The `pu` branch will be updated even if it is does not fast-forward,
+because it is prefixed with a plus sign; `tmp` will not be.
-Author
-------
-Written by Linus Torvalds <torvalds@osdl.org> and
-Junio C Hamano <junkio@cox.net>
-Documentation
--------------
-Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
+BUGS
+----
+Using --recurse-submodules can only fetch new commits in already checked
+out submodules right now. When e.g. upstream added a new submodule in the
+just fetched commits of the superproject the submodule itself can not be
+fetched, making it impossible to check out that submodule later without
+having to do a fetch again. This is expected to be fixed in a future git
+version.
+
+SEE ALSO
+--------
+linkgit:git-pull[1]
GIT
---
-Part of the gitlink:git[7] suite
+Part of the linkgit:git[1] suite