1git-remote(1) 2============ 3 4NAME 5---- 6git-remote - Manage set of tracked repositories 7 8 9SYNOPSIS 10-------- 11[verse] 12'git remote' [-v | --verbose] 13'git remote add' [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url> 14'git remote rename' <old> <new> 15'git remote remove' <name> 16'git remote set-head' <name> (-a | --auto | -d | --delete | <branch>) 17'git remote set-branches' [--add] <name> <branch>... 18'git remote set-url' [--push] <name> <newurl> [<oldurl>] 19'git remote set-url --add' [--push] <name> <newurl> 20'git remote set-url --delete' [--push] <name> <url> 21'git remote' [-v | --verbose] 'show' [-n] <name>... 22'git remote prune' [-n | --dry-run] <name>... 23'git remote' [-v | --verbose] 'update' [-p | --prune] [(<group> | <remote>)...] 24 25DESCRIPTION 26----------- 27 28Manage the set of repositories ("remotes") whose branches you track. 29 30 31OPTIONS 32------- 33 34-v:: 35--verbose:: 36 Be a little more verbose and show remote url after name. 37 NOTE: This must be placed between `remote` and `subcommand`. 38 39 40COMMANDS 41-------- 42 43With no arguments, shows a list of existing remotes. Several 44subcommands are available to perform operations on the remotes. 45 46'add':: 47 48Adds a remote named <name> for the repository at 49<url>. The command `git fetch <name>` can then be used to create and 50update remote-tracking branches <name>/<branch>. 51+ 52With `-f` option, `git fetch <name>` is run immediately after 53the remote information is set up. 54+ 55With `--tags` option, `git fetch <name>` imports every tag from the 56remote repository. 57+ 58With `--no-tags` option, `git fetch <name>` does not import tags from 59the remote repository. 60+ 61By default, only tags on fetched branches are imported 62(see linkgit:git-fetch[1]). 63+ 64With `-t <branch>` option, instead of the default glob 65refspec for the remote to track all branches under 66the `refs/remotes/<name>/` namespace, a refspec to track only `<branch>` 67is created. You can give more than one `-t <branch>` to track 68multiple branches without grabbing all branches. 69+ 70With `-m <master>` option, a symbolic-ref `refs/remotes/<name>/HEAD` is set 71up to point at remote's `<master>` branch. See also the set-head command. 72+ 73When a fetch mirror is created with `--mirror=fetch`, the refs will not 74be stored in the 'refs/remotes/' namespace, but rather everything in 75'refs/' on the remote will be directly mirrored into 'refs/' in the 76local repository. This option only makes sense in bare repositories, 77because a fetch would overwrite any local commits. 78+ 79When a push mirror is created with `--mirror=push`, then `git push` 80will always behave as if `--mirror` was passed. 81 82'rename':: 83 84Rename the remote named <old> to <new>. All remote-tracking branches and 85configuration settings for the remote are updated. 86+ 87In case <old> and <new> are the same, and <old> is a file under 88`$GIT_DIR/remotes` or `$GIT_DIR/branches`, the remote is converted to 89the configuration file format. 90 91'remove':: 92'rm':: 93 94Remove the remote named <name>. All remote-tracking branches and 95configuration settings for the remote are removed. 96 97'set-head':: 98 99Sets or deletes the default branch (i.e. the target of the 100symbolic-ref `refs/remotes/<name>/HEAD`) for 101the named remote. Having a default branch for a remote is not required, 102but allows the name of the remote to be specified in lieu of a specific 103branch. For example, if the default branch for `origin` is set to 104`master`, then `origin` may be specified wherever you would normally 105specify `origin/master`. 106+ 107With `-d` or `--delete`, the symbolic ref `refs/remotes/<name>/HEAD` is deleted. 108+ 109With `-a` or `--auto`, the remote is queried to determine its `HEAD`, then the 110symbolic-ref `refs/remotes/<name>/HEAD` is set to the same branch. e.g., if the remote 111`HEAD` is pointed at `next`, "`git remote set-head origin -a`" will set 112the symbolic-ref `refs/remotes/origin/HEAD` to `refs/remotes/origin/next`. This will 113only work if `refs/remotes/origin/next` already exists; if not it must be 114fetched first. 115+ 116Use `<branch>` to set the symbolic-ref `refs/remotes/<name>/HEAD` explicitly. e.g., "git 117remote set-head origin master" will set the symbolic-ref `refs/remotes/origin/HEAD` to 118`refs/remotes/origin/master`. This will only work if 119`refs/remotes/origin/master` already exists; if not it must be fetched first. 120+ 121 122'set-branches':: 123 124Changes the list of branches tracked by the named remote. 125This can be used to track a subset of the available remote branches 126after the initial setup for a remote. 127+ 128The named branches will be interpreted as if specified with the 129`-t` option on the 'git remote add' command line. 130+ 131With `--add`, instead of replacing the list of currently tracked 132branches, adds to that list. 133 134'set-url':: 135 136Changes URLs for the remote. Sets first URL for remote <name> that matches 137regex <oldurl> (first URL if no <oldurl> is given) to <newurl>. If 138<oldurl> doesn't match any URL, an error occurs and nothing is changed. 139+ 140With '--push', push URLs are manipulated instead of fetch URLs. 141+ 142With '--add', instead of changing existing URLs, new URL is added. 143+ 144With '--delete', instead of changing existing URLs, all URLs matching 145regex <url> are deleted for remote <name>. Trying to delete all 146non-push URLs is an error. 147+ 148Note that the push URL and the fetch URL, even though they can 149be set differently, must still refer to the same place. What you 150pushed to the push URL should be what you would see if you 151immediately fetched from the fetch URL. If you are trying to 152fetch from one place (e.g. your upstream) and push to another (e.g. 153your publishing repository), use two separate remotes. 154 155 156'show':: 157 158Gives some information about the remote <name>. 159+ 160With `-n` option, the remote heads are not queried first with 161`git ls-remote <name>`; cached information is used instead. 162 163'prune':: 164 165Deletes all stale remote-tracking branches under <name>. 166These stale branches have already been removed from the remote repository 167referenced by <name>, but are still locally available in 168"remotes/<name>". 169+ 170With `--dry-run` option, report what branches will be pruned, but do not 171actually prune them. 172 173'update':: 174 175Fetch updates for a named set of remotes in the repository as defined by 176remotes.<group>. If a named group is not specified on the command line, 177the configuration parameter remotes.default will be used; if 178remotes.default is not defined, all remotes which do not have the 179configuration parameter remote.<name>.skipDefaultUpdate set to true will 180be updated. (See linkgit:git-config[1]). 181+ 182With `--prune` option, prune all the remotes that are updated. 183 184 185DISCUSSION 186---------- 187 188The remote configuration is achieved using the `remote.origin.url` and 189`remote.origin.fetch` configuration variables. (See 190linkgit:git-config[1]). 191 192Examples 193-------- 194 195* Add a new remote, fetch, and check out a branch from it 196+ 197------------ 198$ git remote 199origin 200$ git branch -r 201 origin/HEAD -> origin/master 202 origin/master 203$ git remote add staging git://git.kernel.org/.../gregkh/staging.git 204$ git remote 205origin 206staging 207$ git fetch staging 208... 209From git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging 210 * [new branch] master -> staging/master 211 * [new branch] staging-linus -> staging/staging-linus 212 * [new branch] staging-next -> staging/staging-next 213$ git branch -r 214 origin/HEAD -> origin/master 215 origin/master 216 staging/master 217 staging/staging-linus 218 staging/staging-next 219$ git checkout -b staging staging/master 220... 221------------ 222 223* Imitate 'git clone' but track only selected branches 224+ 225------------ 226$ mkdir project.git 227$ cd project.git 228$ git init 229$ git remote add -f -t master -m master origin git://example.com/git.git/ 230$ git merge origin 231------------ 232 233 234SEE ALSO 235-------- 236linkgit:git-fetch[1] 237linkgit:git-branch[1] 238linkgit:git-config[1] 239 240GIT 241--- 242Part of the linkgit:git[1] suite