Documentation: Remove an odd "instead"
[git/git.git] / Documentation / git-clone.txt
CommitLineData
215a7ad1
JH
1git-clone(1)
2============
6ec311da
JH
3
4NAME
5----
29cf5e12 6git-clone - Clone a repository into a new directory
6ec311da
JH
7
8
9SYNOPSIS
10--------
353ce815 11[verse]
b1889c36 12'git clone' [--template=<template_directory>]
bc699afc 13 [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror]
a57c8bac 14 [-o <name>] [-u <upload-pack>] [--reference <repository>]
19391c37 15 [--depth <depth>] [--] <repository> [<directory>]
6ec311da
JH
16
17DESCRIPTION
18-----------
4607166d 19
db9819a4
BF
20Clones a repository into a newly created directory, creates
21remote-tracking branches for each branch in the cloned repository
1170e802
SG
22(visible using `git branch -r`), and creates and checks out an initial
23branch equal to the cloned repository's currently active branch.
4607166d 24
db9819a4
BF
25After the clone, a plain `git fetch` without arguments will update
26all the remote-tracking branches, and a `git pull` without
27arguments will in addition merge the remote master branch into the
1170e802 28current master branch, if any.
4607166d 29
db9819a4
BF
30This default configuration is achieved by creating references to
31the remote branch heads under `$GIT_DIR/refs/remotes/origin` and
32by initializing `remote.origin.url` and `remote.origin.fetch`
33configuration variables.
6ec311da 34
f4bf2184 35
6ec311da
JH
36OPTIONS
37-------
a2775c2a 38--local::
6ec311da
JH
39-l::
40 When the repository to clone from is on a local machine,
41 this flag bypasses normal "git aware" transport
42 mechanism and clones the repository by making a copy of
43 HEAD and everything under objects and refs directories.
3d5c418f
JH
44 The files under `.git/objects/` directory are hardlinked
45 to save space when possible. This is now the default when
46 the source repository is specified with `/path/to/repo`
47 syntax, so it essentially is a no-op option. To force
48 copying instead of hardlinking (which may be desirable
49 if you are trying to make a back-up of your repository),
50 but still avoid the usual "git aware" transport
51 mechanism, `--no-hardlinks` can be used.
52
53--no-hardlinks::
54 Optimize the cloning process from a repository on a
55 local filesystem by copying files under `.git/objects`
56 directory.
6ec311da 57
a2775c2a
EB
58--shared::
59-s::
60 When the repository to clone is on the local machine,
4607166d 61 instead of using hard links, automatically setup
23edecbc 62 .git/objects/info/alternates to share the objects
4607166d
JH
63 with the source repository. The resulting repository
64 starts out without any object of its own.
84668872
MV
65+
66*NOTE*: this is a possibly dangerous operation; do *not* use
67it unless you understand what it does. If you clone your
2498a1ad
BC
68repository using this option and then delete branches (or use any
69other git command that makes any existing commit unreferenced) in the
70source repository, some objects may become unreferenced (or dangling).
ba020ef5 71These objects may be removed by normal git operations (such as 'git-commit')
483bc4f0
JN
72which automatically call `git gc --auto`. (See linkgit:git-gc[1].)
73If these objects are removed and were referenced by the cloned repository,
74then the cloned repository will become corrupt.
28678b4f
MV
75
76
a2775c2a 77
23edecbc
SP
78--reference <repository>::
79 If the reference repository is on the local machine
80 automatically setup .git/objects/info/alternates to
81 obtain objects from the reference repository. Using
82 an already existing repository as an alternate will
451e5931 83 require fewer objects to be copied from the repository
23edecbc 84 being cloned, reducing network and local storage costs.
2498a1ad
BC
85+
86*NOTE*: see NOTE to --shared option.
23edecbc 87
a2775c2a 88--quiet::
6ec311da 89-q::
d3296e37
SH
90 Operate quietly. This flag is also passed to the `rsync'
91 command when given.
6ec311da 92
fd0368f9 93--no-checkout::
a2775c2a
EB
94-n::
95 No checkout of HEAD is performed after the clone is complete.
96
87e80c4b
JH
97--bare::
98 Make a 'bare' GIT repository. That is, instead of
8a1a120c
JH
99 creating `<directory>` and placing the administrative
100 files in `<directory>/.git`, make the `<directory>`
71821351
PB
101 itself the `$GIT_DIR`. This obviously implies the `-n`
102 because there is nowhere to check out the working tree.
103 Also the branch heads at the remote are copied directly
104 to corresponding local branch heads, without mapping
105 them to `refs/remotes/origin/`. When this option is
36566cc0
BF
106 used, neither remote-tracking branches nor the related
107 configuration variables are created.
8a1a120c 108
bc699afc
JS
109--mirror::
110 Set up a mirror of the remote repository. This implies --bare.
111
ba158a32 112--origin <name>::
e6c310fd 113-o <name>::
36566cc0 114 Instead of using the remote name 'origin' to keep track
5bd27ebb 115 of the upstream repository, use <name>.
e6c310fd 116
a2775c2a 117--upload-pack <upload-pack>::
6ec311da 118-u <upload-pack>::
d3296e37
SH
119 When given, and the repository to clone from is accessed
120 via ssh, this specifies a non-default path for the command
6ec311da
JH
121 run on the other end.
122
a57c8bac
JH
123--template=<template_directory>::
124 Specify the directory from which templates will be used;
125 if unset the templates are taken from the installation
126 defined default, typically `/usr/share/git-core/templates`.
127
f496454e 128--depth <depth>::
f4bf2184 129 Create a 'shallow' clone with a history truncated to the
d9d10bb8 130 specified number of revisions. A shallow repository has a
f4bf2184
JH
131 number of limitations (you cannot clone or fetch from
132 it, nor push from nor into it), but is adequate if you
d9d10bb8
RW
133 are only interested in the recent history of a large project
134 with a long history, and would want to send in fixes
f4bf2184
JH
135 as patches.
136
6ec311da 137<repository>::
37ba0561
AR
138 The (possibly remote) repository to clone from. See the
139 <<URLS,URLS>> section below for more information on specifying
140 repositories.
6ec311da
JH
141
142<directory>::
fb6a9f93 143 The name of a new directory to clone into. The "humanish"
0879aa28
AE
144 part of the source repository is used if no directory is
145 explicitly given ("repo" for "/path/to/repo.git" and "foo"
146 for "host.xz:foo/.git"). Cloning into an existing directory
147 is not allowed.
4607166d 148
347989f4 149:git-clone: 1
37ba0561
AR
150include::urls.txt[]
151
1e2ccd3a 152Examples
2b5f3ed3 153--------
1e2ccd3a
JH
154
155Clone from upstream::
156+
157------------
158$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
159$ cd my2.6
160$ make
161------------
162
163
164Make a local clone that borrows from the current directory, without checking things out::
165+
166------------
167$ git clone -l -s -n . ../copy
a6e3768f 168$ cd ../copy
1e2ccd3a
JH
169$ git show-branch
170------------
171
8a1a120c 172
23edecbc
SP
173Clone from upstream while borrowing from an existing local directory::
174+
175------------
176$ git clone --reference my2.6 \
177 git://git.kernel.org/pub/scm/.../linux-2.7 \
178 my2.7
179$ cd my2.7
180------------
181
182
87e80c4b 183Create a bare repository to publish your changes to the public::
8a1a120c
JH
184+
185------------
87e80c4b 186$ git clone --bare -l /home/proj/.git /pub/scm/proj.git
8a1a120c
JH
187------------
188
189
190Create a repository on the kernel.org machine that borrows from Linus::
191+
192------------
87e80c4b 193$ git clone --bare -l -s /pub/scm/.../torvalds/linux-2.6.git \
8a1a120c
JH
194 /pub/scm/.../me/subsys-2.6.git
195------------
196
197
6ec311da
JH
198Author
199------
200Written by Linus Torvalds <torvalds@osdl.org>
201
1e2ccd3a 202
6ec311da
JH
203Documentation
204--------------
0879aa28 205Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
6ec311da
JH
206
207
208GIT
209---
9e1f0a85 210Part of the linkgit:git[1] suite