скачать объекты и ссылки из другого репозитория (Download objects and refs from another repository)
CONFIGURED REMOTE-TRACKING BRANCHES
You often interact with the same remote repository by regularly
and repeatedly fetching from it. In order to keep track of the
progress of such a remote repository, git fetch
allows you to
configure remote.<repository>.fetch
configuration variables.
Typically such a variable may look like this:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
This configuration is used in two ways:
• When git fetch
is run without specifying what branches and/or
tags to fetch on the command line, e.g. git fetch origin
or
git fetch
, remote.<repository>.fetch
values are used as the
refspecs—they specify which refs to fetch and which local
refs to update. The example above will fetch all branches
that exist in the origin
(i.e. any ref that matches the
left-hand side of the value, refs/heads/*
) and update the
corresponding remote-tracking branches in the
refs/remotes/origin/*
hierarchy.
• When git fetch
is run with explicit branches and/or tags to
fetch on the command line, e.g. git fetch origin master
, the
<refspec>s given on the command line determine what are to be
fetched (e.g. master
in the example, which is a short-hand
for master:
, which in turn means "fetch the master branch but
I do not explicitly say what remote-tracking branch to update
with it from the command line"), and the example command will
fetch only the master branch. The remote.<repository>.fetch
values determine which remote-tracking branch, if any, is
updated. When used in this way, the remote.<repository>.fetch
values do not have any effect in deciding what gets fetched
(i.e. the values are not used as refspecs when the
command-line lists refspecs); they are only used to decide
where the refs that are fetched are stored by acting as a
mapping.
The latter use of the remote.<repository>.fetch
values can be
overridden by giving the --refmap=<refspec>
parameter(s) on the
command line.