Merge branch 'mo/maint-crlf-doc' into maint
[gitweb.git] / Documentation / git-fetch.txt
index 09065100029b9055197793addce76834ad8f5ed7..f2483d624ead24031ef3cf320a0c151cc6f6cb2b 100644 (file)
@@ -1,15 +1,14 @@
 git-fetch(1)
 ============
-v0.99.5, Aug 2005
 
 NAME
 ----
-git-fetch - Download objects and a head from another repository.
+git-fetch - Download objects and refs from another repository
 
 
 SYNOPSIS
 --------
-'git-fetch' <repository> <refspec>...
+'git fetch' <options> <repository> <refspec>...
 
 
 DESCRIPTION
@@ -18,30 +17,69 @@ Fetches named heads or tags from another repository, along with
 the objects necessary to complete them.
 
 The ref names and their object names of fetched refs are stored
-in $GIT_DIR/FETCH_HEAD.  This information is left for a later merge
-operation done by "git resolve" or "git octopus".
+in `.git/FETCH_HEAD`.  This information is left for a later merge
+operation done by 'git-merge'.
+
+When <refspec> stores the fetched result in 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.
 
 
 OPTIONS
 -------
+include::fetch-options.txt[]
+
 include::pull-fetch-param.txt[]
 
--u, \--update-head-ok::
-       By default 'git-fetch' refuses to update the head which
-       corresponds to the current branch.  This flag disables the
-       check.  Note that fetching into the current branch will not
-       update the index and working directory, so use it with care.
+include::urls-remotes.txt[]
+
+
+EXAMPLES
+--------
+
+* 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.
+
+
+SEE ALSO
+--------
+linkgit:git-pull[1]
 
 
 Author
 ------
 Written by Linus Torvalds <torvalds@osdl.org> and
-Junio C Hamano <junkio@cox.net>
+Junio C Hamano <gitster@pobox.com>
 
 Documentation
---------------
+-------------
 Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
 
 GIT
 ---
-Part of the gitlink:git[7] suite
+Part of the linkgit:git[1] suite