Merge branch 'jk/cherry-pick-reword' into maint
[git.git] / Documentation / urls.txt
blobd813ceb7239bc2d22eb0af4ad33a6e1be8408787
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{startsb}:port{endsb}/path/to/repo.git/
10 - https://host.xz{startsb}:port{endsb}/path/to/repo.git/
11 - git://host.xz{startsb}:port{endsb}/path/to/repo.git/
12 - git://host.xz{startsb}:port{endsb}/~user/path/to/repo.git/
13 - ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/path/to/repo.git/
14 - ssh://{startsb}user@{endsb}host.xz/path/to/repo.git/
15 - ssh://{startsb}user@{endsb}host.xz/~user/path/to/repo.git/
16 - ssh://{startsb}user@{endsb}host.xz/~/path/to/repo.git
17 ===============================================================
19 SSH is the default transport protocol over the network.  You can
20 optionally specify which user to log-in as, and an alternate,
21 scp-like syntax is also supported.  Both syntaxes support
22 username expansion, as does the native git protocol, but
23 only the former supports port specification. The following
24 three are identical to the last three above, respectively:
26 ===============================================================
27 - {startsb}user@{endsb}host.xz:/path/to/repo.git/
28 - {startsb}user@{endsb}host.xz:~user/path/to/repo.git/
29 - {startsb}user@{endsb}host.xz:path/to/repo.git
30 ===============================================================
32 To sync with a local directory, you can use:
34 ===============================================================
35 - /path/to/repo.git/
36 - file:///path/to/repo.git/
37 ===============================================================
39 ifndef::git-clone[]
40 They are mostly equivalent, except when cloning.  See
41 linkgit:git-clone[1] for details.
42 endif::git-clone[]
44 ifdef::git-clone[]
45 They are equivalent, except the former implies --local option.
46 endif::git-clone[]
49 If there are a large number of similarly-named remote repositories and
50 you want to use a different format for them (such that the URLs you
51 use will be rewritten into URLs that work), you can create a
52 configuration section of the form:
54 ------------
55         [url "<actual url base>"]
56                 insteadOf = <other url base>
57 ------------
59 For example, with this:
61 ------------
62         [url "git://git.host.xz/"]
63                 insteadOf = host.xz:/path/to/
64                 insteadOf = work:
65 ------------
67 a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be
68 rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".
70 If you want to rewrite URLs for push only, you can create a
71 configuration section of the form:
73 ------------
74         [url "<actual url base>"]
75                 pushInsteadOf = <other url base>
76 ------------
78 For example, with this:
80 ------------
81         [url "ssh://example.org/"]
82                 pushInsteadOf = git://example.org/
83 ------------
85 a URL like "git://example.org/path/to/repo.git" will be rewritten to
86 "ssh://example.org/path/to/repo.git" for pushes, but pulls will still
87 use the original URL.