]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-clone.txt
Fix an unmatched comment end in arm/sha1_arm.S
[thirdparty/git.git] / Documentation / git-clone.txt
CommitLineData
215a7ad1
JH
1git-clone(1)
2============
6ec311da
JH
3
4NAME
5----
c3f0baac 6git-clone - Clones a repository into a new directory
6ec311da
JH
7
8
9SYNOPSIS
10--------
353ce815 11[verse]
a57c8bac
JH
12'git-clone' [--template=<template_directory>] [-l [-s]] [-q] [-n] [--bare]
13 [-o <name>] [-u <upload-pack>] [--reference <repository>]
f496454e 14 [--depth <depth>] <repository> [<directory>]
6ec311da
JH
15
16DESCRIPTION
17-----------
4607166d 18
db9819a4
BF
19Clones a repository into a newly created directory, creates
20remote-tracking branches for each branch in the cloned repository
1170e802
SG
21(visible using `git branch -r`), and creates and checks out an initial
22branch equal to the cloned repository's currently active branch.
4607166d 23
db9819a4
BF
24After the clone, a plain `git fetch` without arguments will update
25all the remote-tracking branches, and a `git pull` without
26arguments will in addition merge the remote master branch into the
1170e802 27current master branch, if any.
4607166d 28
db9819a4
BF
29This default configuration is achieved by creating references to
30the remote branch heads under `$GIT_DIR/refs/remotes/origin` and
31by initializing `remote.origin.url` and `remote.origin.fetch`
32configuration variables.
6ec311da 33
f4bf2184 34
6ec311da
JH
35OPTIONS
36-------
a2775c2a 37--local::
6ec311da
JH
38-l::
39 When the repository to clone from is on a local machine,
40 this flag bypasses normal "git aware" transport
41 mechanism and clones the repository by making a copy of
42 HEAD and everything under objects and refs directories.
43 The files under .git/objects/ directory are hardlinked
44 to save space when possible.
45
a2775c2a
EB
46--shared::
47-s::
48 When the repository to clone is on the local machine,
4607166d 49 instead of using hard links, automatically setup
23edecbc 50 .git/objects/info/alternates to share the objects
4607166d
JH
51 with the source repository. The resulting repository
52 starts out without any object of its own.
a2775c2a 53
23edecbc
SP
54--reference <repository>::
55 If the reference repository is on the local machine
56 automatically setup .git/objects/info/alternates to
57 obtain objects from the reference repository. Using
58 an already existing repository as an alternate will
59 require less objects to be copied from the repository
60 being cloned, reducing network and local storage costs.
61
a2775c2a 62--quiet::
6ec311da
JH
63-q::
64 Operate quietly. This flag is passed to "rsync" and
efc7fa53 65 "git-fetch-pack" commands when given.
6ec311da 66
a2775c2a
EB
67-n::
68 No checkout of HEAD is performed after the clone is complete.
69
87e80c4b
JH
70--bare::
71 Make a 'bare' GIT repository. That is, instead of
8a1a120c
JH
72 creating `<directory>` and placing the administrative
73 files in `<directory>/.git`, make the `<directory>`
71821351
PB
74 itself the `$GIT_DIR`. This obviously implies the `-n`
75 because there is nowhere to check out the working tree.
76 Also the branch heads at the remote are copied directly
77 to corresponding local branch heads, without mapping
78 them to `refs/remotes/origin/`. When this option is
36566cc0
BF
79 used, neither remote-tracking branches nor the related
80 configuration variables are created.
8a1a120c 81
ba158a32 82--origin <name>::
e6c310fd 83-o <name>::
36566cc0
BF
84 Instead of using the remote name 'origin' to keep track
85 of the upstream repository, use <name> instead.
e6c310fd 86
a2775c2a 87--upload-pack <upload-pack>::
6ec311da
JH
88-u <upload-pack>::
89 When given, and the repository to clone from is handled
efc7fa53 90 by 'git-fetch-pack', '--exec=<upload-pack>' is passed to
6ec311da
JH
91 the command to specify non-default path for the command
92 run on the other end.
93
a57c8bac
JH
94--template=<template_directory>::
95 Specify the directory from which templates will be used;
96 if unset the templates are taken from the installation
97 defined default, typically `/usr/share/git-core/templates`.
98
f496454e 99--depth <depth>::
f4bf2184
JH
100 Create a 'shallow' clone with a history truncated to the
101 specified number of revs. A shallow repository has
102 number of limitations (you cannot clone or fetch from
103 it, nor push from nor into it), but is adequate if you
104 want to only look at near the tip of a large project
105 with a long history, and would want to send in a fixes
106 as patches.
107
6ec311da
JH
108<repository>::
109 The (possibly remote) repository to clone from. It can
4607166d 110 be any URL git-fetch supports.
6ec311da
JH
111
112<directory>::
fb6a9f93 113 The name of a new directory to clone into. The "humanish"
0879aa28
AE
114 part of the source repository is used if no directory is
115 explicitly given ("repo" for "/path/to/repo.git" and "foo"
116 for "host.xz:foo/.git"). Cloning into an existing directory
117 is not allowed.
4607166d 118
1e2ccd3a 119Examples
2b5f3ed3 120--------
1e2ccd3a
JH
121
122Clone from upstream::
123+
124------------
125$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6
126$ cd my2.6
127$ make
128------------
129
130
131Make a local clone that borrows from the current directory, without checking things out::
132+
133------------
134$ git clone -l -s -n . ../copy
135$ cd copy
136$ git show-branch
137------------
138
8a1a120c 139
23edecbc
SP
140Clone from upstream while borrowing from an existing local directory::
141+
142------------
143$ git clone --reference my2.6 \
144 git://git.kernel.org/pub/scm/.../linux-2.7 \
145 my2.7
146$ cd my2.7
147------------
148
149
87e80c4b 150Create a bare repository to publish your changes to the public::
8a1a120c
JH
151+
152------------
87e80c4b 153$ git clone --bare -l /home/proj/.git /pub/scm/proj.git
8a1a120c
JH
154------------
155
156
157Create a repository on the kernel.org machine that borrows from Linus::
158+
159------------
87e80c4b 160$ git clone --bare -l -s /pub/scm/.../torvalds/linux-2.6.git \
8a1a120c
JH
161 /pub/scm/.../me/subsys-2.6.git
162------------
163
164
6ec311da
JH
165Author
166------
167Written by Linus Torvalds <torvalds@osdl.org>
168
1e2ccd3a 169
6ec311da
JH
170Documentation
171--------------
0879aa28 172Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.
6ec311da
JH
173
174
175GIT
176---
a7154e91 177Part of the gitlink:git[7] suite
6ec311da 178