git-svn: avoid string eval for defining functions
[git/dkf.git] / Documentation / urls.txt
blob745f9677d005b522f52496339abd5afc4267a815
1 GIT URLS[[URLS]]
2 ----------------
4 One of the following notations can be used
5 to name the remote repository:
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 ===============================================================
18 SSH is the default transport protocol.  You can optionally specify
19 which user to log-in as, and an alternate, scp-like syntax is also
20 supported.  Both syntaxes support username expansion,
21 as does the native git protocol. The following three are
22 identical to the last three above, respectively:
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 ===============================================================
30 To sync with a local directory, use:
32 ===============================================================
33 - /path/to/repo.git/
34 ===============================================================
36 REMOTES
37 -------
39 In addition to the above, as a short-hand, the name of a
40 file in `$GIT_DIR/remotes` directory can be given; the
41 named file should be in the following format:
43 ------------
44         URL: one of the above URL format
45         Push: <refspec>
46         Pull: <refspec>
48 ------------
50 Then such a short-hand is specified in place of
51 <repository> without <refspec> parameters on the command
52 line, <refspec> specified on `Push:` lines or `Pull:`
53 lines are used for `git-push` and `git-fetch`/`git-pull`,
54 respectively.  Multiple `Push:` and `Pull:` lines may
55 be specified for additional branch mappings.
57 Or, equivalently, in the `$GIT_DIR/config` (note the use
58 of `fetch` instead of `Pull:`):
60 ------------
61         [remote "<remote>"]
62                 url = <url>
63                 push = <refspec>
64                 fetch = <refspec>
66 ------------
68 The name of a file in `$GIT_DIR/branches` directory can be
69 specified as an older notation short-hand; the named
70 file should contain a single line, a URL in one of the
71 above formats, optionally followed by a hash `#` and the
72 name of remote head (URL fragment notation).
73 `$GIT_DIR/branches/<remote>` file that stores a <url>
74 without the fragment is equivalent to have this in the
75 corresponding file in the `$GIT_DIR/remotes/` directory.
77 ------------
78         URL: <url>
79         Pull: refs/heads/master:<remote>
81 ------------
83 while having `<url>#<head>` is equivalent to
85 ------------
86         URL: <url>
87         Pull: refs/heads/<head>:<remote>
88 ------------