mirror of
https://github.com/git/git.git
synced 2024-12-14 12:23:35 +08:00
84bb2dfd9f
This patch adds a remote.*.mirror configuration option that, when set, automatically puts git-push in --mirror mode for that remote. Furthermore, the option is set automatically by `git remote add --mirror'. The code in remote.c to parse remote.*.skipdefaultupdate had a subtle problem: a comment in the code indicated that special care was needed for boolean options, but this care was not used in parsing the option. Since I was touching related code, I did this fix too. [jc: and I further fixed up the "ignore boolean" code.] Signed-off-by: Paolo Bonzini <bonzini@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
150 lines
3.7 KiB
Plaintext
150 lines
3.7 KiB
Plaintext
git-remote(1)
|
|
============
|
|
|
|
NAME
|
|
----
|
|
git-remote - manage set of tracked repositories
|
|
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'git-remote'
|
|
'git-remote' add [-t <branch>] [-m <master>] [-f] [--mirror] <name> <url>
|
|
'git-remote' rm <name>
|
|
'git-remote' show <name>
|
|
'git-remote' prune <name>
|
|
'git-remote' update [group]
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
Manage the set of repositories ("remotes") whose branches you track.
|
|
|
|
|
|
COMMANDS
|
|
--------
|
|
|
|
With no arguments, shows a list of existing remotes. Several
|
|
subcommands are available to perform operations on the remotes.
|
|
|
|
'add'::
|
|
|
|
Adds a remote named <name> for the repository at
|
|
<url>. The command `git fetch <name>` can then be used to create and
|
|
update remote-tracking branches <name>/<branch>.
|
|
+
|
|
With `-f` option, `git fetch <name>` is run immediately after
|
|
the remote information is set up.
|
|
+
|
|
With `-t <branch>` option, instead of the default glob
|
|
refspec for the remote to track all branches under
|
|
`$GIT_DIR/remotes/<name>/`, a refspec to track only `<branch>`
|
|
is created. You can give more than one `-t <branch>` to track
|
|
multiple branches without grabbing all branches.
|
|
+
|
|
With `-m <master>` option, `$GIT_DIR/remotes/<name>/HEAD` is set
|
|
up to point at remote's `<master>` branch instead of whatever
|
|
branch the `HEAD` at the remote repository actually points at.
|
|
+
|
|
In mirror mode, enabled with `\--mirror`, the refs will not be stored
|
|
in the 'refs/remotes/' namespace, but in 'refs/heads/'. This option
|
|
only makes sense in bare repositories. If a remote uses mirror
|
|
mode, furthermore, `git push` will always behave as if `\--mirror`
|
|
was passed.
|
|
|
|
'rm'::
|
|
|
|
Remove the remote named <name>. All remote tracking branches and
|
|
configuration settings for the remote are removed.
|
|
|
|
'show'::
|
|
|
|
Gives some information about the remote <name>.
|
|
+
|
|
With `-n` option, the remote heads are not queried first with
|
|
`git ls-remote <name>`; cached information is used instead.
|
|
|
|
'prune'::
|
|
|
|
Deletes all stale tracking branches under <name>.
|
|
These stale branches have already been removed from the remote repository
|
|
referenced by <name>, but are still locally available in
|
|
"remotes/<name>".
|
|
+
|
|
With `-n` option, the remote heads are not confirmed first with `git
|
|
ls-remote <name>`; cached information is used instead. Use with
|
|
caution.
|
|
|
|
'update'::
|
|
|
|
Fetch updates for a named set of remotes in the repository as defined by
|
|
remotes.<group>. If a named group is not specified on the command line,
|
|
the configuration parameter remotes.default will get used; if
|
|
remotes.default is not defined, all remotes which do not have the
|
|
configuration parameter remote.<name>.skipDefaultUpdate set to true will
|
|
be updated. (See linkgit:git-config[1]).
|
|
|
|
|
|
DISCUSSION
|
|
----------
|
|
|
|
The remote configuration is achieved using the `remote.origin.url` and
|
|
`remote.origin.fetch` configuration variables. (See
|
|
linkgit:git-config[1]).
|
|
|
|
Examples
|
|
--------
|
|
|
|
* Add a new remote, fetch, and check out a branch from it
|
|
+
|
|
------------
|
|
$ git remote
|
|
origin
|
|
$ git branch -r
|
|
origin/master
|
|
$ git remote add linux-nfs git://linux-nfs.org/pub/linux/nfs-2.6.git
|
|
$ git remote
|
|
linux-nfs
|
|
origin
|
|
$ git fetch
|
|
* refs/remotes/linux-nfs/master: storing branch 'master' ...
|
|
commit: bf81b46
|
|
$ git branch -r
|
|
origin/master
|
|
linux-nfs/master
|
|
$ git checkout -b nfs linux-nfs/master
|
|
...
|
|
------------
|
|
|
|
* Imitate 'git clone' but track only selected branches
|
|
+
|
|
------------
|
|
$ mkdir project.git
|
|
$ cd project.git
|
|
$ git init
|
|
$ git remote add -f -t master -m master origin git://example.com/git.git/
|
|
$ git merge origin
|
|
------------
|
|
|
|
|
|
See Also
|
|
--------
|
|
linkgit:git-fetch[1]
|
|
linkgit:git-branch[1]
|
|
linkgit:git-config[1]
|
|
|
|
Author
|
|
------
|
|
Written by Junio Hamano
|
|
|
|
|
|
Documentation
|
|
--------------
|
|
Documentation by J. Bruce Fields and the git-list <git@vger.kernel.org>.
|
|
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[7] suite
|