Code

Merge branch 'bc/filter-branch'
[git.git] / Documentation / urls.txt
index 670827c323fe276124ba1a84d59386771db868f1..fa34c6747194aaecf9e8124462129b8bbc9ae7d4 100644 (file)
@@ -10,16 +10,18 @@ to name the remote repository:
 - https://host.xz/path/to/repo.git/
 - git://host.xz/path/to/repo.git/
 - git://host.xz/~user/path/to/repo.git/
+- ssh://{startsb}user@{endsb}host.xz{startsb}:port{endsb}/path/to/repo.git/
 - ssh://{startsb}user@{endsb}host.xz/path/to/repo.git/
 - ssh://{startsb}user@{endsb}host.xz/~user/path/to/repo.git/
 - ssh://{startsb}user@{endsb}host.xz/~/path/to/repo.git
 ===============================================================
 
-SSH is the default transport protocol.  You can optionally specify
-which user to log-in as, and an alternate, scp-like syntax is also
-supported.  Both syntaxes support username expansion,
-as does the native git protocol. The following three are
-identical to the last three above, respectively:
+SSH is the default transport protocol over the network.  You can
+optionally specify which user to log-in as, and an alternate,
+scp-like syntax is also supported.  Both syntaxes support
+username expansion, as does the native git protocol, but
+only the former supports port specification. The following
+three are identical to the last three above, respectively:
 
 ===============================================================
 - {startsb}user@{endsb}host.xz:/path/to/repo.git/
@@ -27,51 +29,41 @@ identical to the last three above, respectively:
 - {startsb}user@{endsb}host.xz:path/to/repo.git
 ===============================================================
 
-To sync with a local directory, use:
+To sync with a local directory, you can use:
 
 ===============================================================
 - /path/to/repo.git/
+- file:///path/to/repo.git/
 ===============================================================
 
-REMOTES
--------
+ifndef::git-clone[]
+They are mostly equivalent, except when cloning.  See
+linkgit:git-clone[1] for details.
+endif::git-clone[]
 
-In addition to the above, as a short-hand, the name of a
-file in `$GIT_DIR/remotes` directory can be given; the
-named file should be in the following format:
+ifdef::git-clone[]
+They are equivalent, except the former implies --local option.
+endif::git-clone[]
 
-       URL: one of the above URL format
-       Push: <refspec>
-       Pull: <refspec>
 
-Then such a short-hand is specified in place of
-<repository> without <refspec> parameters on the command
-line, <refspec> specified on `Push:` lines or `Pull:`
-lines are used for `git-push` and `git-fetch`/`git-pull`,
-respectively.  Multiple `Push:` and `Pull:` lines may
-be specified for additional branch mappings.
+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:
 
-Or, equivalently, in the `$GIT_DIR/config` (note the use
-of `fetch` instead of `Pull:`):
+------------
+       [url "<actual url base>"]
+               insteadOf = <other url base>
+------------
 
-[remote "<remote>"]
-       url = <url>
-       push = <refspec>
-       fetch = <refspec>
+For example, with this:
 
-The name of a file in `$GIT_DIR/branches` directory can be
-specified as an older notation short-hand; the named
-file should contain a single line, a URL in one of the
-above formats, optionally followed by a hash `#` and the
-name of remote head (URL fragment notation).
-`$GIT_DIR/branches/<remote>` file that stores a <url>
-without the fragment is equivalent to have this in the
-corresponding file in the `$GIT_DIR/remotes/` directory.
+------------
+       [url "git://git.host.xz/"]
+               insteadOf = host.xz:/path/to/
+               insteadOf = work:
+------------
 
-       URL: <url>
-       Pull: refs/heads/master:<remote>
+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".
 
-while having `<url>#<head>` is equivalent to
-
-       URL: <url>
-       Pull: refs/heads/<head>:<remote>