git-remote(1)
============

NAME
----
git-remote - manage set of tracked repositories


SYNOPSIS
--------
[verse]
'git-remote'
'git-remote' add [-t <branch>] [-m <branch>] [-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.

'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 the
configuration parameter remote.<name>.skipDefaultUpdate set to true will
be updated.  (See gitlink:git-config[1]).


DISCUSSION
----------

The remote configuration is achieved using the `remote.origin.url` and
`remote.origin.fetch` configuration variables.  (See
gitlink: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/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
--------
gitlink:git-fetch[1]
gitlink:git-branch[1]
gitlink: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 gitlink:git[7] suite
