Documentation / urls.txton commit merge-recursive: separate out xdl_merge() interface. (3e5261a)
   1GIT URLS[[URLS]]
   2----------------
   3
   4One of the following notations can be used
   5to name the remote repository:
   6
   7===============================================================
   8- rsync://host.xz/path/to/repo.git/
   9- http://host.xz/path/to/repo.git/
  10- https://host.xz/path/to/repo.git/
  11- git://host.xz/path/to/repo.git/
  12- git://host.xz/~user/path/to/repo.git/
  13- ssh://{startsb}user@{endsb}host.xz/path/to/repo.git/
  14- ssh://{startsb}user@{endsb}host.xz/~user/path/to/repo.git/
  15- ssh://{startsb}user@{endsb}host.xz/~/path/to/repo.git
  16===============================================================
  17
  18SSH is the default transport protocol.  You can optionally specify
  19which user to log-in as, and an alternate, scp-like syntax is also
  20supported.  Both syntaxes support username expansion,
  21as does the native git protocol. The following three are
  22identical to the last three above, respectively:
  23
  24===============================================================
  25- {startsb}user@{endsb}host.xz:/path/to/repo.git/
  26- {startsb}user@{endsb}host.xz:~user/path/to/repo.git/
  27- {startsb}user@{endsb}host.xz:path/to/repo.git
  28===============================================================
  29
  30To sync with a local directory, use:
  31
  32===============================================================
  33- /path/to/repo.git/
  34===============================================================
  35
  36REMOTES
  37-------
  38
  39In addition to the above, as a short-hand, the name of a
  40file in `$GIT_DIR/remotes` directory can be given; the
  41named file should be in the following format:
  42
  43------------
  44        URL: one of the above URL format
  45        Push: <refspec>
  46        Pull: <refspec>
  47
  48------------
  49
  50Then such a short-hand is specified in place of
  51<repository> without <refspec> parameters on the command
  52line, <refspec> specified on `Push:` lines or `Pull:`
  53lines are used for `git-push` and `git-fetch`/`git-pull`,
  54respectively.  Multiple `Push:` and `Pull:` lines may
  55be specified for additional branch mappings.
  56
  57Or, equivalently, in the `$GIT_DIR/config` (note the use
  58of `fetch` instead of `Pull:`):
  59
  60------------
  61        [remote "<remote>"]
  62                url = <url>
  63                push = <refspec>
  64                fetch = <refspec>
  65
  66------------
  67
  68The name of a file in `$GIT_DIR/branches` directory can be
  69specified as an older notation short-hand; the named
  70file should contain a single line, a URL in one of the
  71above formats, optionally followed by a hash `#` and the
  72name of remote head (URL fragment notation).
  73`$GIT_DIR/branches/<remote>` file that stores a <url>
  74without the fragment is equivalent to have this in the
  75corresponding file in the `$GIT_DIR/remotes/` directory.
  76
  77------------
  78        URL: <url>
  79        Pull: refs/heads/master:<remote>
  80
  81------------
  82
  83while having `<url>#<head>` is equivalent to
  84
  85------------
  86        URL: <url>
  87        Pull: refs/heads/<head>:<remote>
  88------------