'\" 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