git-remote.1   [plain text]


'\" t
.\"     Title: git-remote
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\"      Date: 02/24/2014
.\"    Manual: Git Manual
.\"    Source: Git 1.9.0
.\"  Language: English
.\"
.TH "GIT\-REMOTE" "1" "02/24/2014" "Git 1\&.9\&.0" "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 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
remote
and
subcommand\&.
.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
git fetch <name>
can then be used to create and update remote\-tracking branches <name>/<branch>\&.
.sp
With
\-f
option,
git fetch <name>
is run immediately after the remote information is set up\&.
.sp
With
\-\-tags
option,
git fetch <name>
imports every tag from the remote repository\&.
.sp
With
\-\-no\-tags
option,
git fetch <name>
does not import tags from the remote repository\&.
.sp
With
\-t <branch>
option, instead of the default glob refspec for the remote to track all branches under the
refs/remotes/<name>/
namespace, a refspec to track only
<branch>
is created\&. You can give more than one
\-t <branch>
to track multiple branches without grabbing all branches\&.
.sp
With
\-m <master>
option, a symbolic\-ref
refs/remotes/<name>/HEAD
is set up to point at remote\(cqs
<master>
branch\&. See also the set\-head command\&.
.sp
When a fetch mirror is created with
\-\-mirror=fetch, 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
\-\-mirror=push, then
git push
will always behave as if
\-\-mirror
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
$GIT_DIR/remotes
or
$GIT_DIR/branches, 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
refs/remotes/<name>/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\&.
.sp
With
\-d
or
\-\-delete, the symbolic ref
refs/remotes/<name>/HEAD
is deleted\&.
.sp
With
\-a
or
\-\-auto, the remote is queried to determine its
HEAD, then the symbolic\-ref
refs/remotes/<name>/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 the symbolic\-ref
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\&.
.sp
Use
<branch>
to set the symbolic\-ref
refs/remotes/<name>/HEAD
explicitly\&. e\&.g\&., "git remote set\-head origin master" will set the symbolic\-ref
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\&.
.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
\-t
option on the
\fIgit remote add\fR
command line\&.
.sp
With
\-\-add, instead of replacing the list of currently tracked branches, adds to that list\&.
.RE
.PP
\fIset\-url\fR
.RS 4
Changes URL remote points to\&. Sets first URL remote points to matching regex <oldurl> (first URL if no <oldurl> is given) to <newurl>\&. If <oldurl> doesn\(cqt match any URL, error occurs and nothing is changed\&.
.sp
With
\fI\-\-push\fR, push URLs are manipulated instead of fetch URLs\&.
.sp
With
\fI\-\-add\fR, instead of changing some URL, new URL is added\&.
.sp
With
\fI\-\-delete\fR, instead of changing some URL, all URLs matching regex <url> are deleted\&. Trying to delete all non\-push URLs is an error\&.
.RE
.PP
\fIshow\fR
.RS 4
Gives some information about the remote <name>\&.
.sp
With
\-n
option, the remote heads are not queried first with
git ls\-remote <name>; cached information is used instead\&.
.RE
.PP
\fIprune\fR
.RS 4
Deletes all stale remote\-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>"\&.
.sp
With
\-\-dry\-run
option, report what branches will be pruned, but do not actually prune them\&.
.RE
.PP
\fIupdate\fR
.RS 4
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 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
\-\-prune
option, prune all the remotes that are updated\&.
.RE
.SH "DISCUSSION"
.sp
The remote configuration is achieved using the remote\&.origin\&.url and remote\&.origin\&.fetch 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