зеркало из https://github.com/microsoft/git.git
Documentation/git-pull: describe default behaviour and config interactions
The way 'git pull' without explicit parameters work were not explained well in any existing documentation. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
40facde06e
Коммит
9e2586ff2f
|
@ -33,6 +33,60 @@ include::urls.txt[]
|
|||
|
||||
include::merge-strategies.txt[]
|
||||
|
||||
DEFAULT BEHAVIOUR
|
||||
-----------------
|
||||
|
||||
Often people use `git pull` without giving any parameter.
|
||||
Traditionally, this has been equivalent to saying `git pull
|
||||
origin`. However, when configuration `branch.<name>.remote` is
|
||||
present while on branch `<name>`, that value is used instead of
|
||||
`origin`.
|
||||
|
||||
In order to determine what URL to use to fetch from, the value
|
||||
of the configuration `remote.<origin>.url` is consulted
|
||||
and if there is not any such variable, the value on `URL: ` line
|
||||
in `$GIT_DIR/remotes/<origin>` file is used.
|
||||
|
||||
In order to determine what remote branches to fetch (and
|
||||
optionally store in the tracking branches) when the command is
|
||||
run without any refspec parameters on the command line, values
|
||||
of the configuration variable `remote.<origin>.fetch` are
|
||||
consulted, and if there aren't any, `$GIT_DIR/remotes/<origin>`
|
||||
file is consulted and its `Pull: ` lines are used.
|
||||
In addition to the refspec formats described in the OPTIONS
|
||||
section, you can have a globbing refspec that looks like this:
|
||||
|
||||
------------
|
||||
refs/heads/*:refs/remotes/origin/*
|
||||
------------
|
||||
|
||||
A globbing refspec must have a non-empty RHS (i.e. must store
|
||||
what were fetched in tracking branches), and its LHS and RHS
|
||||
must end with `/*`. The above specifies that all remote
|
||||
branches are tracked using tracking branches in
|
||||
`refs/remotes/origin/` hierarchy under the same name.
|
||||
|
||||
The rule to determine which remote branch to merge after
|
||||
fetching is a bit involved, in order not to break backward
|
||||
compatibility.
|
||||
|
||||
If explicit refspecs were given on the command
|
||||
line of `git pull`, they are all merged.
|
||||
|
||||
When no refspec was given on the command line, then `git pull`
|
||||
uses the refspec from the configuration or
|
||||
`$GIT_DIR/remotes/<origin>`. In such cases, the following
|
||||
rules apply:
|
||||
|
||||
. If `branch.<name>.merge` configuration for the current
|
||||
branch `<name>` exists, that is the name of the branch at the
|
||||
remote site that is merged.
|
||||
|
||||
. If the refspec is a globbing one, nothing is merged.
|
||||
|
||||
. Otherwise the remote branch of the first refspec is merged.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче