git-remote(1)
============
NAME
----
git-remote - manage set of tracked repositories
SYNOPSIS
--------
[verse]
'git remote' [-v | --verbose]
'git remote add' [-t ] [-m ] [-f] [--mirror]
'git remote rename'
'git remote rm'
'git remote set-head' (-a | -d | )
'git remote set-url' [--push] []
'git remote set-url --add' [--push]
'git remote set-url --delete' [--push]
'git remote' [-v | --verbose] 'show' [-n]
'git remote prune' [-n | --dry-run]
'git remote' [-v | --verbose] 'update' [-p | --prune] [group | remote]...
DESCRIPTION
-----------
Manage the set of repositories ("remotes") whose branches you track.
OPTIONS
-------
-v::
--verbose::
Be a little more verbose and show remote url after name.
NOTE: This must be placed between `remote` and `subcommand`.
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 for the repository at
. The command `git fetch ` can then be used to create and
update remote-tracking branches /.
+
With `-f` option, `git fetch ` is run immediately after
the remote information is set up.
+
With `-t ` option, instead of the default glob
refspec for the remote to track all branches under
`$GIT_DIR/remotes//`, a refspec to track only ``
is created. You can give more than one `-t ` to track
multiple branches without grabbing all branches.
+
With `-m ` option, `$GIT_DIR/remotes//HEAD` is set
up to point at remote's `` branch. See also the set-head command.
+
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.
'rename'::
Rename the remote named to . All remote tracking branches and
configuration settings for the remote are updated.
+
In case and are the same, and is a file under
`$GIT_DIR/remotes` or `$GIT_DIR/branches`, the remote is converted to
the configuration file format.
'rm'::
Remove the remote named . All remote tracking branches and
configuration settings for the remote are removed.
'set-head'::
Sets or deletes the default branch (`$GIT_DIR/remotes//HEAD`) for
the named remote. Having a default branch for a remote is not required,
but allows the name of the remote to be specified in lieu of a specific
branch. For example, if the default branch for `origin` is set to
`master`, then `origin` may be specified wherever you would normally
specify `origin/master`.
+
With `-d`, `$GIT_DIR/remotes//HEAD` is deleted.
+
With `-a`, the remote is queried to determine its `HEAD`, then
`$GIT_DIR/remotes//HEAD` is set to the same branch. e.g., if the remote
`HEAD` is pointed at `next`, "`git remote set-head origin -a`" will set
`$GIT_DIR/refs/remotes/origin/HEAD` to `refs/remotes/origin/next`. This will
only work if `refs/remotes/origin/next` already exists; if not it must be
fetched first.
+
Use `` to set `$GIT_DIR/remotes//HEAD` explicitly. e.g., "git
remote set-head origin master" will set `$GIT_DIR/refs/remotes/origin/HEAD` to
`refs/remotes/origin/master`. This will only work if
`refs/remotes/origin/master` already exists; if not it must be fetched first.
+
'set-url'::
Changes URL remote points to. Sets first URL remote points to matching
regex (first URL if no is given) to . If
doesn't match any URL, error occurs and nothing is changed.
+
With '--push', push URLs are manipulated instead of fetch URLs.
+
With '--add', instead of changing some URL, new URL is added.
+
With '--delete', instead of changing some URL, all URLs matching
regex are deleted. Trying to delete all non-push URLs is an
error.
'show'::
Gives some information about the remote .
+
With `-n` option, the remote heads are not queried first with
`git ls-remote `; cached information is used instead.
'prune'::
Deletes all stale tracking branches under .
These stale branches have already been removed from the remote repository
referenced by , but are still locally available in
"remotes/".
+
With `--dry-run` option, report what branches will be pruned, but do not
actually prune them.
'update'::
Fetch updates for a named set of remotes in the repository as defined by
remotes.. If a named group is not specified on the command line,
the configuration parameter remotes.default will be used; if
remotes.default is not defined, all remotes which do not have the
configuration parameter remote..skipDefaultUpdate set to true will
be updated. (See linkgit:git-config[1]).
+
With `--prune` option, prune all the remotes that are updated.
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
---
Part of the linkgit:git[1] suite