Documentation / pull-fetch-param.txton commit Documentation: git-add -- do not say "cache", add examples. (810bf1f)
   1<repository>::
   2        The "remote" repository to pull from.  One of the
   3        following notations can be used to name the repository
   4        to pull from:
   5+
   6===============================================================
   7- Rsync URL:            rsync://remote.machine/path/to/repo.git/
   8- HTTP(s) URL:          http://remote.machine/path/to/repo.git/
   9- git URL:              git://remote.machine/path/to/repo.git/
  10                        or remote.machine:/path/to/repo.git/
  11- Local directory:      /path/to/repo.git/
  12===============================================================
  13+
  14In addition to the above, as a short-hand, the name of a
  15file in $GIT_DIR/remotes directory can be given; the
  16named file should be in the following format:
  17+
  18        URL: one of the above URL format
  19        Push: <refspec>...
  20        Pull: <refspec>...
  21+
  22When such a short-hand is specified in place of
  23<repository> without <refspec> parameters on the command
  24line, <refspec>... specified on Push lines or Pull lines
  25are used for "git push" and "git fetch/pull",
  26respectively.
  27+
  28The name of a file in $GIT_DIR/branches directory can be
  29specified as an older notation short-hand; the named
  30file should contain a single line, a URL in one of the
  31above formats, optionally followed by a hash '#' and the
  32name of remote head (URL fragment notation).
  33$GIT_DIR/branches/<remote> file that stores a <url>
  34without the fragment is equivalent to have this in the
  35corresponding file in the $GIT_DIR/remotes/ directory
  36+
  37        URL: <url>
  38        Pull: refs/heads/master:<remote>
  39+
  40while having <url>#<head> is equivalent to
  41+
  42        URL: <url>
  43        Pull: refs/heads/<head>:<remote>
  44
  45<refspec>::
  46        The canonical format of a <refspec> parameter is
  47        '+?<src>:<dst>'; that is, an optional plus '+', followed
  48        by the source ref, followed by a colon ':', followed by
  49        the destination ref.
  50+
  51When used in "git push", the <src> side can be an
  52arbitrary "SHA1 expression" that can be used as an
  53argument to "git-cat-file -t".  E.g. "master~4" (push
  54four parents before the current master head).
  55+
  56For "git push", the local ref that matches <src> is used
  57to fast forward the remote ref that matches <dst>.  If
  58the optional plus '+' is used, the remote ref is updated
  59even if it does not result in a fast forward update.
  60+
  61For "git fetch/pull", the remote ref that matches <src>
  62is fetched, and if <dst> is not empty string, the local
  63ref that matches it is fast forwarded using <src>.
  64Again, if the optional plus '+' is used, the local ref
  65is updated even if it does not result in a fast forward
  66update.
  67+
  68Some short-cut notations are also supported.
  69+
  70* For backward compatibility, "tag" is almost ignored;
  71  it just makes the following parameter <tag> to mean a
  72  refspec "refs/tags/<tag>:refs/tags/<tag>".
  73* A parameter <ref> without a colon is equivalent to
  74  <ref>: when pulling/fetching, and <ref>:<ref> when
  75  pushing.  That is, do not store it locally if
  76  fetching, and update the same name if pushing.
  77