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