]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-remote.txt
Git 2.5
[thirdparty/git.git] / Documentation / git-remote.txt
CommitLineData
041e69c9
BF
1git-remote(1)
2============
3
4NAME
5----
a2f69581 6git-remote - Manage set of tracked repositories
041e69c9
BF
7
8
9SYNOPSIS
10--------
11[verse]
b1889c36 12'git remote' [-v | --verbose]
0460ed2c 13'git remote add' [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>
bf98421a 14'git remote rename' <old> <new>
e17dba8f 15'git remote remove' <name>
159543e8 16'git remote set-head' <name> (-a | --auto | -d | --delete | <branch>)
ca5bc9e6 17'git remote set-branches' [--add] <name> <branch>...
433f2be1
IL
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>
b17dd3f9
TR
21'git remote' [-v | --verbose] 'show' [-n] <name>...
22'git remote prune' [-n | --dry-run] <name>...
0adda936 23'git remote' [-v | --verbose] 'update' [-p | --prune] [(<group> | <remote>)...]
041e69c9
BF
24
25DESCRIPTION
26-----------
27
28Manage the set of repositories ("remotes") whose branches you track.
29
041e69c9 30
459cf2e9
SB
31OPTIONS
32-------
33
34-v::
35--verbose::
36 Be a little more verbose and show remote url after name.
4504107d 37 NOTE: This must be placed between `remote` and `subcommand`.
459cf2e9
SB
38
39
0f390875
SP
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
041e69c9
BF
49<url>. The command `git fetch <name>` can then be used to create and
50update remote-tracking branches <name>/<branch>.
c5ddca1f
JH
51+
52With `-f` option, `git fetch <name>` is run immediately after
53the remote information is set up.
54+
111fb858
ST
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+
aaba0ab4
MG
61By default, only tags on fetched branches are imported
62(see linkgit:git-fetch[1]).
63+
c5ddca1f
JH
64With `-t <branch>` option, instead of the default glob
65refspec for the remote to track all branches under
0aceb220 66the `refs/remotes/<name>/` namespace, a refspec to track only `<branch>`
c5ddca1f 67is created. You can give more than one `-t <branch>` to track
cf593cc4 68multiple branches without grabbing all branches.
c5ddca1f 69+
0aceb220 70With `-m <master>` option, a symbolic-ref `refs/remotes/<name>/HEAD` is set
bc14fac8 71up to point at remote's `<master>` branch. See also the set-head command.
38944390 72+
6cf378f0 73When a fetch mirror is created with `--mirror=fetch`, the refs will not
a9f5a355
JK
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+
6cf378f0
JK
79When a push mirror is created with `--mirror=push`, then `git push`
80will always behave as if `--mirror` was passed.
041e69c9 81
bf98421a
MV
82'rename'::
83
0e615b25 84Rename the remote named <old> to <new>. All remote-tracking branches and
bf98421a 85configuration settings for the remote are updated.
74443f18
MV
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.
bf98421a 90
e17dba8f 91'remove'::
1b4cbb5d
JB
92'rm'::
93
0e615b25 94Remove the remote named <name>. All remote-tracking branches and
1b4cbb5d
JB
95configuration settings for the remote are removed.
96
bc14fac8
JS
97'set-head'::
98
0aceb220
JH
99Sets or deletes the default branch (i.e. the target of the
100symbolic-ref `refs/remotes/<name>/HEAD`) for
bc14fac8
JS
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+
159543e8 107With `-d` or `--delete`, the symbolic ref `refs/remotes/<name>/HEAD` is deleted.
bc14fac8 108+
159543e8 109With `-a` or `--auto`, the remote is queried to determine its `HEAD`, then the
0aceb220 110symbolic-ref `refs/remotes/<name>/HEAD` is set to the same branch. e.g., if the remote
bc14fac8 111`HEAD` is pointed at `next`, "`git remote set-head origin -a`" will set
0aceb220 112the symbolic-ref `refs/remotes/origin/HEAD` to `refs/remotes/origin/next`. This will
bc14fac8
JS
113only work if `refs/remotes/origin/next` already exists; if not it must be
114fetched first.
115+
0aceb220
JH
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
bc14fac8
JS
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
3d8b6949
JN
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
433f2be1
IL
134'set-url'::
135
697f6528 136Changes URLs for the remote. Sets first URL for remote <name> that matches
433f2be1 137regex <oldurl> (first URL if no <oldurl> is given) to <newurl>. If
697f6528 138<oldurl> doesn't match any URL, an error occurs and nothing is changed.
433f2be1
IL
139+
140With '--push', push URLs are manipulated instead of fetch URLs.
141+
697f6528 142With '--add', instead of changing existing URLs, new URL is added.
433f2be1 143+
697f6528
JH
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
433f2be1 155
0f390875 156'show'::
041e69c9 157
0f390875 158Gives some information about the remote <name>.
181ea688
SV
159+
160With `-n` option, the remote heads are not queried first with
161`git ls-remote <name>`; cached information is used instead.
0f390875
SP
162
163'prune'::
164
8b3f3f84 165Deletes all stale remote-tracking branches under <name>.
859607df 166These stale branches have already been removed from the remote repository
1e592d65
TT
167referenced by <name>, but are still locally available in
168"remotes/<name>".
181ea688 169+
75f492ac 170With `--dry-run` option, report what branches will be pruned, but do not
8d767927 171actually prune them.
1e592d65
TT
172
173'update'::
174
1918278e
TT
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,
75f492ac 177the configuration parameter remotes.default will be used; if
cb5c49b9 178remotes.default is not defined, all remotes which do not have the
1918278e 179configuration parameter remote.<name>.skipDefaultUpdate set to true will
5162e697 180be updated. (See linkgit:git-config[1]).
efa54803
FAG
181+
182With `--prune` option, prune all the remotes that are updated.
859607df 183
0f390875
SP
184
185DISCUSSION
186----------
187
041e69c9
BF
188The remote configuration is achieved using the `remote.origin.url` and
189`remote.origin.fetch` configuration variables. (See
5162e697 190linkgit:git-config[1]).
041e69c9
BF
191
192Examples
193--------
194
db554bf0
JH
195* Add a new remote, fetch, and check out a branch from it
196+
041e69c9
BF
197------------
198$ git remote
199origin
200$ git branch -r
34a25d4c
TK
201 origin/HEAD -> origin/master
202 origin/master
203$ git remote add staging git://git.kernel.org/.../gregkh/staging.git
041e69c9 204$ git remote
041e69c9 205origin
34a25d4c
TK
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
041e69c9 213$ git branch -r
34a25d4c
TK
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
041e69c9
BF
220...
221------------
222
0b444cdb 223* Imitate 'git clone' but track only selected branches
db554bf0
JH
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
56ae8df5 234SEE ALSO
041e69c9 235--------
5162e697
DM
236linkgit:git-fetch[1]
237linkgit:git-branch[1]
238linkgit:git-config[1]
041e69c9 239
041e69c9
BF
240GIT
241---
9e1f0a85 242Part of the linkgit:git[1] suite