'\" t
.\"     Title: git-remote
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/>
.\"      Date: 02/06/2019
.\"    Manual: Git Manual
.\"    Source: Git 2.21.0.rc0
.\"  Language: English
.\"
.TH "GIT\-REMOTE" "1" "02/06/2019" "Git 2\&.21\&.0\&.rc0" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-remote \- Manage set of tracked repositories
.SH "SYNOPSIS"
.sp
.nf
\fIgit remote\fR [\-v | \-\-verbose]
\fIgit remote add\fR [\-t <branch>] [\-m <master>] [\-f] [\-\-[no\-]tags] [\-\-mirror=<fetch|push>] <name> <url>
\fIgit remote rename\fR <old> <new>
\fIgit remote remove\fR <name>
\fIgit remote set\-head\fR <name> (\-a | \-\-auto | \-d | \-\-delete | <branch>)
\fIgit remote set\-branches\fR [\-\-add] <name> <branch>\&...
\fIgit remote get\-url\fR [\-\-push] [\-\-all] <name>
\fIgit remote set\-url\fR [\-\-push] <name> <newurl> [<oldurl>]
\fIgit remote set\-url \-\-add\fR [\-\-push] <name> <newurl>
\fIgit remote set\-url \-\-delete\fR [\-\-push] <name> <url>
\fIgit remote\fR [\-v | \-\-verbose] \fIshow\fR [\-n] <name>\&...
\fIgit remote prune\fR [\-n | \-\-dry\-run] <name>\&...
\fIgit remote\fR [\-v | \-\-verbose] \fIupdate\fR [\-p | \-\-prune] [(<group> | <remote>)\&...]
.fi
.sp
.SH "DESCRIPTION"
.sp
Manage the set of repositories ("remotes") whose branches you track\&.
.SH "OPTIONS"
.PP
\-v, \-\-verbose
.RS 4
Be a little more verbose and show remote url after name\&. NOTE: This must be placed between
\fBremote\fR
and
\fBsubcommand\fR\&.
.RE
.SH "COMMANDS"
.sp
With no arguments, shows a list of existing remotes\&. Several subcommands are available to perform operations on the remotes\&.
.PP
\fIadd\fR
.RS 4
Adds a remote named <name> for the repository at <url>\&. The command
\fBgit fetch <name>\fR
can then be used to create and update remote\-tracking branches <name>/<branch>\&.
.sp
With
\fB\-f\fR
option,
\fBgit fetch <name>\fR
is run immediately after the remote information is set up\&.
.sp
With
\fB\-\-tags\fR
option,
\fBgit fetch <name>\fR
imports every tag from the remote repository\&.
.sp
With
\fB\-\-no\-tags\fR
option,
\fBgit fetch <name>\fR
does not import tags from the remote repository\&.
.sp
By default, only tags on fetched branches are imported (see
\fBgit-fetch\fR(1))\&.
.sp
With
\fB\-t <branch>\fR
option, instead of the default glob refspec for the remote to track all branches under the
\fBrefs/remotes/<name>/\fR
namespace, a refspec to track only
\fB<branch>\fR
is created\&. You can give more than one
\fB\-t <branch>\fR
to track multiple branches without grabbing all branches\&.
.sp
With
\fB\-m <master>\fR
option, a symbolic\-ref
\fBrefs/remotes/<name>/HEAD\fR
is set up to point at remote\(cqs
\fB<master>\fR
branch\&. See also the set\-head command\&.
.sp
When a fetch mirror is created with
\fB\-\-mirror=fetch\fR, the refs will not be stored in the
\fIrefs/remotes/\fR
namespace, but rather everything in
\fIrefs/\fR
on the remote will be directly mirrored into
\fIrefs/\fR
in the local repository\&. This option only makes sense in bare repositories, because a fetch would overwrite any local commits\&.
.sp
When a push mirror is created with
\fB\-\-mirror=push\fR, then
\fBgit push\fR
will always behave as if
\fB\-\-mirror\fR
was passed\&.
.RE
.PP
\fIrename\fR
.RS 4
Rename the remote named <old> to <new>\&. All remote\-tracking branches and configuration settings for the remote are updated\&.
.sp
In case <old> and <new> are the same, and <old> is a file under
\fB$GIT_DIR/remotes\fR
or
\fB$GIT_DIR/branches\fR, the remote is converted to the configuration file format\&.
.RE
.PP
\fIremove\fR, \fIrm\fR
.RS 4
Remove the remote named <name>\&. All remote\-tracking branches and configuration settings for the remote are removed\&.
.RE
.PP
\fIset\-head\fR
.RS 4
Sets or deletes the default branch (i\&.e\&. the target of the symbolic\-ref
\fBrefs/remotes/<name>/HEAD\fR) 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
\fBorigin\fR
is set to
\fBmaster\fR, then
\fBorigin\fR
may be specified wherever you would normally specify
\fBorigin/master\fR\&.
.sp
With
\fB\-d\fR
or
\fB\-\-delete\fR, the symbolic ref
\fBrefs/remotes/<name>/HEAD\fR
is deleted\&.
.sp
With
\fB\-a\fR
or
\fB\-\-auto\fR, the remote is queried to determine its
\fBHEAD\fR, then the symbolic\-ref
\fBrefs/remotes/<name>/HEAD\fR
is set to the same branch\&. e\&.g\&., if the remote
\fBHEAD\fR
is pointed at
\fBnext\fR, "\fBgit remote set\-head origin \-a\fR" will set the symbolic\-ref
\fBrefs/remotes/origin/HEAD\fR
to
\fBrefs/remotes/origin/next\fR\&. This will only work if
\fBrefs/remotes/origin/next\fR
already exists; if not it must be fetched first\&.
.sp
Use
\fB<branch>\fR
to set the symbolic\-ref
\fBrefs/remotes/<name>/HEAD\fR
explicitly\&. e\&.g\&., "git remote set\-head origin master" will set the symbolic\-ref
\fBrefs/remotes/origin/HEAD\fR
to
\fBrefs/remotes/origin/master\fR\&. This will only work if
\fBrefs/remotes/origin/master\fR
already exists; if not it must be fetched first\&.
.RE
.PP
\fIset\-branches\fR
.RS 4
Changes the list of branches tracked by the named remote\&. This can be used to track a subset of the available remote branches after the initial setup for a remote\&.
.sp
The named branches will be interpreted as if specified with the
\fB\-t\fR
option on the
\fIgit remote add\fR
command line\&.
.sp
With
\fB\-\-add\fR, instead of replacing the list of currently tracked branches, adds to that list\&.
.RE
.PP
\fIget\-url\fR
.RS 4
Retrieves the URLs for a remote\&. Configurations for
\fBinsteadOf\fR
and
\fBpushInsteadOf\fR
are expanded here\&. By default, only the first URL is listed\&.
.sp
With
\fB\-\-push\fR, push URLs are queried rather than fetch URLs\&.
.sp
With
\fB\-\-all\fR, all URLs for the remote will be listed\&.
.RE
.PP
\fIset\-url\fR
.RS 4
Changes URLs for the remote\&. Sets first URL for remote <name> that matches regex <oldurl> (first URL if no <oldurl> is given) to <newurl>\&. If <oldurl> doesn\(cqt match any URL, an error occurs and nothing is changed\&.
.sp
With
\fB\-\-push\fR, push URLs are manipulated instead of fetch URLs\&.
.sp
With
\fB\-\-add\fR, instead of changing existing URLs, new URL is added\&.
.sp
With
\fB\-\-delete\fR, instead of changing existing URLs, all URLs matching regex <url> are deleted for remote <name>\&. Trying to delete all non\-push URLs is an error\&.
.sp
Note that the push URL and the fetch URL, even though they can be set differently, must still refer to the same place\&. What you pushed to the push URL should be what you would see if you immediately fetched from the fetch URL\&. If you are trying to fetch from one place (e\&.g\&. your upstream) and push to another (e\&.g\&. your publishing repository), use two separate remotes\&.
.RE
.PP
\fIshow\fR
.RS 4
Gives some information about the remote <name>\&.
.sp
With
\fB\-n\fR
option, the remote heads are not queried first with
\fBgit ls\-remote <name>\fR; cached information is used instead\&.
.RE
.PP
\fIprune\fR
.RS 4
Deletes stale references associated with <name>\&. By default, stale remote\-tracking branches under <name> are deleted, but depending on global configuration and the configuration of the remote we might even prune local tags that haven\(cqt been pushed there\&. Equivalent to
\fBgit fetch \-\-prune <name>\fR, except that no new references will be fetched\&.
.sp
See the PRUNING section of
\fBgit-fetch\fR(1)
for what it\(cqll prune depending on various configuration\&.
.sp
With
\fB\-\-dry\-run\fR
option, report what branches will be pruned, but do not actually prune them\&.
.RE
.PP
\fIupdate\fR
.RS 4
Fetch updates for remotes or remote groups in the repository as defined by remotes\&.<group>\&. If neither group nor remote is 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\&.<name>\&.skipDefaultUpdate set to true will be updated\&. (See
\fBgit-config\fR(1))\&.
.sp
With
\fB\-\-prune\fR
option, run pruning against all the remotes that are updated\&.
.RE
.SH "DISCUSSION"
.sp
The remote configuration is achieved using the \fBremote\&.origin\&.url\fR and \fBremote\&.origin\&.fetch\fR configuration variables\&. (See \fBgit-config\fR(1))\&.
.SH "EXAMPLES"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Add a new remote, fetch, and check out a branch from it
.sp
.if n \{\
.RS 4
.\}
.nf
$ git remote
origin
$ git branch \-r
  origin/HEAD \-> origin/master
  origin/master
$ git remote add staging git://git\&.kernel\&.org/\&.\&.\&./gregkh/staging\&.git
$ git remote
origin
staging
$ git fetch staging
\&.\&.\&.
From git://git\&.kernel\&.org/pub/scm/linux/kernel/git/gregkh/staging
 * [new branch]      master     \-> staging/master
 * [new branch]      staging\-linus \-> staging/staging\-linus
 * [new branch]      staging\-next \-> staging/staging\-next
$ git branch \-r
  origin/HEAD \-> origin/master
  origin/master
  staging/master
  staging/staging\-linus
  staging/staging\-next
$ git checkout \-b staging staging/master
\&.\&.\&.
.fi
.if n \{\
.RE
.\}
.sp
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Imitate
\fIgit clone\fR
but track only selected branches
.sp
.if n \{\
.RS 4
.\}
.nf
$ 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
.fi
.if n \{\
.RE
.\}
.sp
.RE
.SH "SEE ALSO"
.sp
\fBgit-fetch\fR(1) \fBgit-branch\fR(1) \fBgit-config\fR(1)
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
