summaryrefslogtreecommitdiff
path: root/Documentation/git-remote.txt
blob: 3dde7134a5cedc6d58a934e1dd61db26d5e459ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
git-remote(1)
============

NAME
----
git-remote - manage set of tracked repositories


SYNOPSIS
--------
[verse]
'git-remote'
'git-remote' add [-t <branch>] [-m <branch>] [-f] <name> <url>
'git-remote' show <name>
'git-remote' prune <name>
'git-remote' update [group]

DESCRIPTION
-----------

Manage the set of repositories ("remotes") whose branches you track.


COMMANDS
--------

With no arguments, shows a list of existing remotes.  Several
subcommands are available to perform operations on the remotes.

'add'::

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>.
+
With `-f` option, `git fetch <name>` is run immediately after
the remote information is set up.
+
With `-t <branch>` option, instead of the default glob
refspec for the remote to track all branches under
`$GIT_DIR/remotes/<name>/`, a refspec to track only `<branch>`
is created.  You can give more than one `-t <branch>` to track
multiple branches without grabbing all branches.
+
With `-m <master>` option, `$GIT_DIR/remotes/<name>/HEAD` is set
up to point at remote's `<master>` branch instead of whatever
branch the `HEAD` at the remote repository actually points at.

'show'::

Gives some information about the remote <name>.

'prune'::

Deletes all stale 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>".

'update'::

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 get used; if
remotes.default is not defined, all remotes which do not the
configuration parameter remote.<name>.skipDefaultUpdate set to true will
be updated.  (See gitlink:git-config[1]).


DISCUSSION
----------

The remote configuration is achieved using the `remote.origin.url` and
`remote.origin.fetch` configuration variables.  (See
gitlink:git-config[1]).

Examples
--------

* Add a new remote, fetch, and check out a branch from it
+
------------
$ git remote
origin
$ git branch -r
origin/master
$ git remote add linux-nfs git://linux-nfs.org/pub/nfs-2.6.git
$ git remote
linux-nfs
origin
$ git fetch
* refs/remotes/linux-nfs/master: storing branch 'master' ...
  commit: bf81b46
$ git branch -r
origin/master
linux-nfs/master
$ git checkout -b nfs linux-nfs/master
...
------------

* Imitate 'git clone' but track only selected branches
+
------------
$ 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
------------


See Also
--------
gitlink:git-fetch[1]
gitlink:git-branch[1]
gitlink:git-config[1]

Author
------
Written by Junio Hamano


Documentation
--------------
Documentation by J. Bruce Fields and the git-list <git@vger.kernel.org>.


GIT
---
Part of the gitlink:git[7] suite