mirror of
https://github.com/git/git
synced 2024-10-30 14:03:28 +00:00
76880f0510
Signed-off-by: Jean-Noël Avila <jn.avila@free.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>
110 lines
3.8 KiB
Text
110 lines
3.8 KiB
Text
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 them).
|
|
|
|
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>__{startsb}++:++__<port>__{endsb}++/++__<path-to-git-repo>__
|
|
- ++git://++__<host>__{startsb}:__<port>__{endsb}++/++__<path-to-git-repo>__
|
|
- ++http++{startsb}++s++{endsb}++://++__<host>__{startsb}++:++__<port>__{endsb}++/++__<path-to-git-repo>__
|
|
- ++ftp++{startsb}++s++{endsb}++://++__<host>__{startsb}++:++__<port>__{endsb}++/++__<path-to-git-repo>__
|
|
|
|
An alternative scp-like syntax may also be used with the ssh protocol:
|
|
|
|
- {startsb}__<user>__++@++{endsb}__<host>__++:/++__<path-to-git-repo>__
|
|
|
|
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>__{startsb}++:++__<port>__{endsb}++/~++__<user>__++/++__<path-to-git-repo>__
|
|
- ++git://++__<host>__{startsb}++:++__<port>__{endsb}++/~++__<user>__++/++__<path-to-git-repo>__
|
|
- {startsb}__<user>__++@++{endsb}__<host>__++:~++__<user>__++/++__<path-to-git-repo>__
|
|
|
|
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-`{empty}__<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:
|
|
|
|
[verse]
|
|
--
|
|
[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:
|
|
|
|
[verse]
|
|
--
|
|
[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.
|