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