Clarify description of <repository> argument to pull/fetch for naming remotes.

Alter the description of <repository> in OPTIONS section to
explicitly state that a 'remote name' is accepted.
Rewrite REMOTES section to more directly identify the
different kinds of remote-name permitted.

Signed-off-by: John J. Franey <jjfraney@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
John J. Franey 2008-05-29 13:32:31 -04:00 committed by Junio C Hamano
parent ad5fa3cc0e
commit 5812473335
2 changed files with 63 additions and 34 deletions

View File

@ -1,6 +1,8 @@
<repository>:: <repository>::
The "remote" repository that is the source of a fetch The "remote" repository that is the source of a fetch
or pull operation. See the section <<URLS,GIT URLS>> below. or pull operation. This parameter can be either a URL
(see the section <<URLS,GIT URLS>> below) or the name
of a remote (see the section <<REMOTES,REMOTES>> below).
<refspec>:: <refspec>::
The canonical format of a <refspec> parameter is The canonical format of a <refspec> parameter is

View File

@ -1,11 +1,46 @@
include::urls.txt[] include::urls.txt[]
REMOTES REMOTES[[REMOTES]]
------- ------------------
In addition to the above, as a short-hand, the name of a The name of one of the following can be used instead
file in `$GIT_DIR/remotes` directory can be given; the of a URL as `<repository>` argument:
named file should be in the following format:
* a remote in the git configuration file: `$GIT_DIR/config`,
* a file in the `$GIT_DIR/remotes` directory, or
* a file in the `$GIT_DIR/branches` directory.
All of these also allow you to omit the refspec from the command line
because they each contain a refspec which git will use by default.
Named remote in configuration file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can choose to provide the name of a remote which you had previously
configured using linkgit:git-remote[1], linkgit:git-config[1]
or even by a manual edit to the `$GIT_DIR/config` file. The URL of
this remote will be used to access the repository. The refspec
of this remote will be used by default when you do
not provide a refspec on the command line. The entry in the
config file would appear like this:
------------
[remote "<name>"]
url = <url>
push = <refspec>
fetch = <refspec>
------------
Named file in `$GIT_DIR/remotes`
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can choose to provide the name of a
file in `$GIT_DIR/remotes`. The URL
in this file will be used to access the repository. The refspec
in this file will be used as default when you do not
provide a refspec on the command line. This file should have the
following format:
------------ ------------
URL: one of the above URL format URL: one of the above URL format
@ -14,42 +49,34 @@ named file should be in the following format:
------------ ------------
Then such a short-hand is specified in place of `Push:` lines are used by `git-push` and
<repository> without <refspec> parameters on the command `Pull:` lines are used by `git-pull` and `git-fetch`.
line, <refspec> specified on `Push:` lines or `Pull:` Multiple `Push:` and `Pull:` lines may
lines are used for `git-push` and `git-fetch`/`git-pull`,
respectively. Multiple `Push:` and `Pull:` lines may
be specified for additional branch mappings. be specified for additional branch mappings.
Or, equivalently, in the `$GIT_DIR/config` (note the use Named file in `$GIT_DIR/branches`
of `fetch` instead of `Pull:`): ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can choose to provide the name of a
file in `$GIT_DIR/branches`.
The URL in this file will be used to access the repository.
This file should have the following format:
------------ ------------
[remote "<remote>"] <url>#<head>
url = <url>
push = <refspec>
fetch = <refspec>
------------ ------------
The name of a file in `$GIT_DIR/branches` directory can be `<url>` is required; `#<head>` is optional.
specified as an older notation short-hand; the named When you do not provide a refspec on the command line,
file should contain a single line, a URL in one of the git will use the following refspec, where `<head>` defaults to `master`,
above formats, optionally followed by a hash `#` and the and `<repository>` is the name of this file
name of remote head (URL fragment notation). you provided in the command line.
`$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: <url> refs/heads/<head>:<repository>
Pull: refs/heads/master:<remote>
------------ ------------
while having `<url>#<head>` is equivalent to
------------
URL: <url>
Pull: refs/heads/<head>:<remote>
------------