You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.5 KiB
108 lines
3.5 KiB
GIT URLS[[URLS]] |
|
---------------- |
|
|
|
In general, URLs contain information about the transport protocol, the |
|
address of the remote server, and the path to the repository. |
|
Depending on the transport protocol, some of this information may be |
|
absent. |
|
|
|
Git supports ssh, git, http, and https protocols (in addition, ftp, |
|
and ftps can be used for fetching, but this is inefficient and |
|
deprecated; do not use it). |
|
|
|
The native transport (i.e. git:// URL) does no authentication and |
|
should be used with caution on unsecured networks. |
|
|
|
The following syntaxes may be used with them: |
|
|
|
- ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/path/to/repo.git/ |
|
- git://host.xz{startsb}:port{endsb}/path/to/repo.git/ |
|
- http{startsb}s{endsb}://host.xz{startsb}:port{endsb}/path/to/repo.git/ |
|
- ftp{startsb}s{endsb}://host.xz{startsb}:port{endsb}/path/to/repo.git/ |
|
|
|
An alternative scp-like syntax may also be used with the ssh protocol: |
|
|
|
- {startsb}user@{endsb}host.xz:path/to/repo.git/ |
|
|
|
This syntax is only recognized if there are no slashes before the |
|
first colon. This helps differentiate a local path that contains a |
|
colon. For example the local path `foo:bar` could be specified as an |
|
absolute path or `./foo:bar` to avoid being misinterpreted as an ssh |
|
url. |
|
|
|
The ssh and git protocols additionally support ~username expansion: |
|
|
|
- ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/~{startsb}user{endsb}/path/to/repo.git/ |
|
- git://host.xz{startsb}:port{endsb}/~{startsb}user{endsb}/path/to/repo.git/ |
|
- {startsb}user@{endsb}host.xz:/~{startsb}user{endsb}/path/to/repo.git/ |
|
|
|
For local repositories, also supported by Git natively, the following |
|
syntaxes may be used: |
|
|
|
- /path/to/repo.git/ |
|
- \file:///path/to/repo.git/ |
|
|
|
ifndef::git-clone[] |
|
These two syntaxes are mostly equivalent, except when cloning, when |
|
the former implies --local option. See linkgit:git-clone[1] for |
|
details. |
|
endif::git-clone[] |
|
|
|
ifdef::git-clone[] |
|
These two syntaxes are mostly equivalent, except the former implies |
|
--local option. |
|
endif::git-clone[] |
|
|
|
'git clone', 'git fetch' and 'git pull', but not 'git push', will also |
|
accept a suitable bundle file. See linkgit:git-bundle[1]. |
|
|
|
When Git doesn't know how to handle a certain transport protocol, it |
|
attempts to use the 'remote-<transport>' remote helper, if one |
|
exists. To explicitly request a remote helper, the following syntax |
|
may be used: |
|
|
|
- <transport>::<address> |
|
|
|
where <address> may be a path, a server and path, or an arbitrary |
|
URL-like string recognized by the specific remote helper being |
|
invoked. See linkgit:gitremote-helpers[7] for details. |
|
|
|
If there are a large number of similarly-named remote repositories and |
|
you want to use a different format for them (such that the URLs you |
|
use will be rewritten into URLs that work), you can create a |
|
configuration section of the form: |
|
|
|
------------ |
|
[url "<actual url base>"] |
|
insteadOf = <other url base> |
|
------------ |
|
|
|
For example, with this: |
|
|
|
------------ |
|
[url "git://git.host.xz/"] |
|
insteadOf = host.xz:/path/to/ |
|
insteadOf = work: |
|
------------ |
|
|
|
a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be |
|
rewritten in any context that takes a URL to be "git://git.host.xz/repo.git". |
|
|
|
If you want to rewrite URLs for push only, you can create a |
|
configuration section of the form: |
|
|
|
------------ |
|
[url "<actual url base>"] |
|
pushInsteadOf = <other url base> |
|
------------ |
|
|
|
For example, with this: |
|
|
|
------------ |
|
[url "ssh://example.org/"] |
|
pushInsteadOf = git://example.org/ |
|
------------ |
|
|
|
a URL like "git://example.org/path/to/repo.git" will be rewritten to |
|
"ssh://example.org/path/to/repo.git" for pushes, but pulls will still |
|
use the original URL.
|
|
|