]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git.txt
submodule: do not copy unknown update mode from .gitmodules
[thirdparty/git.git] / Documentation / git.txt
CommitLineData
9e1f0a85 1git(1)
2cf565c5 2======
2cf565c5
DG
3
4NAME
5----
6git - the stupid content tracker
7
8
9SYNOPSIS
10--------
8b70004b 11[verse]
68e4b552
ZJS
12'git' [--version] [--help] [-c <name>=<value>]
13 [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
d49483f0
JT
14 [-p|--paginate|--no-pager] [--no-replace-objects] [--bare]
15 [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
68e4b552 16 <command> [<args>]
2cf565c5
DG
17
18DESCRIPTION
19-----------
23091e95
BF
20Git is a fast, scalable, distributed revision control system with an
21unusually rich command set that provides both high-level operations
22and full access to internals.
23
6998e4db 24See linkgit:gittutorial[7] to get started, then see
7687ae98
JH
25link:everyday.html[Everyday Git] for a useful minimum set of
26commands. The link:user-manual.html[Git User's Manual] has a more
27in-depth introduction.
cb22bc44 28
7687ae98 29After you mastered the basic concepts, you can come back to this
2de9b711
TA
30page to learn what commands Git offers. You can learn more about
31individual Git commands with "git help command". linkgit:gitcli[7]
7687ae98 32manual page gives you an overview of the command line command syntax.
4514ad4f 33
2de9b711 34Formatted and hyperlinked version of the latest Git documentation
7687ae98 35can be viewed at `http://git-htmldocs.googlecode.com/git/git.html`.
34b604af 36
26cfcfbf
JH
37ifdef::stalenotes[]
38[NOTE]
39============
26cfcfbf 40
2ff3f61a 41You are reading the documentation for the latest (possibly
2de9b711 42unreleased) version of Git, that is available from 'master'
2ff3f61a
JH
43branch of the `git.git` repository.
44Documentation for older releases are available here:
43a8e4fe 45
becb4336 46* link:v1.8.4.4/git.html[documentation for release 1.8.4.4]
e230c568
JH
47
48* release notes for
becb4336 49 link:RelNotes/1.8.4.4.txt[1.8.4.4],
d7d2c879 50 link:RelNotes/1.8.4.3.txt[1.8.4.3],
dcb11cca 51 link:RelNotes/1.8.4.2.txt[1.8.4.2],
02a110ad 52 link:RelNotes/1.8.4.1.txt[1.8.4.1],
e230c568
JH
53 link:RelNotes/1.8.4.txt[1.8.4].
54
117eea7e 55* link:v1.8.3.4/git.html[documentation for release 1.8.3.4]
54219a4d
JH
56
57* release notes for
117eea7e 58 link:RelNotes/1.8.3.4.txt[1.8.3.4],
5addd1c7 59 link:RelNotes/1.8.3.3.txt[1.8.3.3],
3a461832 60 link:RelNotes/1.8.3.2.txt[1.8.3.2],
362de916 61 link:RelNotes/1.8.3.1.txt[1.8.3.1],
54219a4d
JH
62 link:RelNotes/1.8.3.txt[1.8.3].
63
92758dd2 64* link:v1.8.2.3/git.html[documentation for release 1.8.2.3]
239222f5
JH
65
66* release notes for
54219a4d
JH
67 link:RelNotes/1.8.2.3.txt[1.8.2.3],
68 link:RelNotes/1.8.2.2.txt[1.8.2.2],
69 link:RelNotes/1.8.2.1.txt[1.8.2.1],
239222f5
JH
70 link:RelNotes/1.8.2.txt[1.8.2].
71
2137ce01 72* link:v1.8.1.6/git.html[documentation for release 1.8.1.6]
5d417842
JH
73
74* release notes for
2137ce01 75 link:RelNotes/1.8.1.6.txt[1.8.1.6],
e6363a49 76 link:RelNotes/1.8.1.5.txt[1.8.1.5],
dff9f883 77 link:RelNotes/1.8.1.4.txt[1.8.1.4],
f3500825
JH
78 link:RelNotes/1.8.1.3.txt[1.8.1.3],
79 link:RelNotes/1.8.1.2.txt[1.8.1.2],
e4f59a32 80 link:RelNotes/1.8.1.1.txt[1.8.1.1],
5d417842
JH
81 link:RelNotes/1.8.1.txt[1.8.1].
82
15999998 83* link:v1.8.0.3/git.html[documentation for release 1.8.0.3]
8c7a786b
JH
84
85* release notes for
15999998 86 link:RelNotes/1.8.0.3.txt[1.8.0.3],
3e53891f 87 link:RelNotes/1.8.0.2.txt[1.8.0.2],
ed9fe755
JH
88 link:RelNotes/1.8.0.1.txt[1.8.0.1],
89 link:RelNotes/1.8.0.txt[1.8.0].
8c7a786b 90
7e201053 91* link:v1.7.12.4/git.html[documentation for release 1.7.12.4]
889d3589
JH
92
93* release notes for
7e201053 94 link:RelNotes/1.7.12.4.txt[1.7.12.4],
234cd456 95 link:RelNotes/1.7.12.3.txt[1.7.12.3],
d8cf053d 96 link:RelNotes/1.7.12.2.txt[1.7.12.2],
304b7d99 97 link:RelNotes/1.7.12.1.txt[1.7.12.1],
889d3589
JH
98 link:RelNotes/1.7.12.txt[1.7.12].
99
bafc478f 100* link:v1.7.11.7/git.html[documentation for release 1.7.11.7]
0ce2e396
JH
101
102* release notes for
bafc478f 103 link:RelNotes/1.7.11.7.txt[1.7.11.7],
e09e4024 104 link:RelNotes/1.7.11.6.txt[1.7.11.6],
cd7c0be1 105 link:RelNotes/1.7.11.5.txt[1.7.11.5],
0e4c8822 106 link:RelNotes/1.7.11.4.txt[1.7.11.4],
e6dfbcf1 107 link:RelNotes/1.7.11.3.txt[1.7.11.3],
8d141a1d 108 link:RelNotes/1.7.11.2.txt[1.7.11.2],
0e64a95a 109 link:RelNotes/1.7.11.1.txt[1.7.11.1],
0ce2e396
JH
110 link:RelNotes/1.7.11.txt[1.7.11].
111
785ee496 112* link:v1.7.10.5/git.html[documentation for release 1.7.10.5]
e8dde3e5
JH
113
114* release notes for
785ee496 115 link:RelNotes/1.7.10.5.txt[1.7.10.5],
121f71f0 116 link:RelNotes/1.7.10.4.txt[1.7.10.4],
6a6d72b1 117 link:RelNotes/1.7.10.3.txt[1.7.10.3],
b6555d73 118 link:RelNotes/1.7.10.2.txt[1.7.10.2],
bf505158 119 link:RelNotes/1.7.10.1.txt[1.7.10.1],
e8dde3e5
JH
120 link:RelNotes/1.7.10.txt[1.7.10].
121
d0f1ea60 122* link:v1.7.9.7/git.html[documentation for release 1.7.9.7]
828ea97d
JH
123
124* release notes for
d0f1ea60 125 link:RelNotes/1.7.9.7.txt[1.7.9.7],
cb2ed324 126 link:RelNotes/1.7.9.6.txt[1.7.9.6],
8ced9c90 127 link:RelNotes/1.7.9.5.txt[1.7.9.5],
a4603481 128 link:RelNotes/1.7.9.4.txt[1.7.9.4],
69f4e08f 129 link:RelNotes/1.7.9.3.txt[1.7.9.3],
78f4c9f6 130 link:RelNotes/1.7.9.2.txt[1.7.9.2],
90020e3b 131 link:RelNotes/1.7.9.1.txt[1.7.9.1],
828ea97d
JH
132 link:RelNotes/1.7.9.txt[1.7.9].
133
d9f5ef7a 134* link:v1.7.8.6/git.html[documentation for release 1.7.8.6]
406da780
JH
135
136* release notes for
d9f5ef7a 137 link:RelNotes/1.7.8.6.txt[1.7.8.6],
cb2ed324 138 link:RelNotes/1.7.8.5.txt[1.7.8.5],
c572f491 139 link:RelNotes/1.7.8.4.txt[1.7.8.4],
5f4d133f
JH
140 link:RelNotes/1.7.8.3.txt[1.7.8.3],
141 link:RelNotes/1.7.8.2.txt[1.7.8.2],
142 link:RelNotes/1.7.8.1.txt[1.7.8.1],
406da780
JH
143 link:RelNotes/1.7.8.txt[1.7.8].
144
82588584 145* link:v1.7.7.7/git.html[documentation for release 1.7.7.7]
703f05ad
JH
146
147* release notes for
82588584 148 link:RelNotes/1.7.7.7.txt[1.7.7.7],
c572f491 149 link:RelNotes/1.7.7.6.txt[1.7.7.6],
66c11f02
JH
150 link:RelNotes/1.7.7.5.txt[1.7.7.5],
151 link:RelNotes/1.7.7.4.txt[1.7.7.4],
152 link:RelNotes/1.7.7.3.txt[1.7.7.3],
153 link:RelNotes/1.7.7.2.txt[1.7.7.2],
f7d958df 154 link:RelNotes/1.7.7.1.txt[1.7.7.1],
703f05ad
JH
155 link:RelNotes/1.7.7.txt[1.7.7].
156
f174a258 157* link:v1.7.6.6/git.html[documentation for release 1.7.6.6]
f696543d
JH
158
159* release notes for
f174a258 160 link:RelNotes/1.7.6.6.txt[1.7.6.6],
15b7898c 161 link:RelNotes/1.7.6.5.txt[1.7.6.5],
63205264 162 link:RelNotes/1.7.6.4.txt[1.7.6.4],
740a8fc2 163 link:RelNotes/1.7.6.3.txt[1.7.6.3],
509d5970
JH
164 link:RelNotes/1.7.6.2.txt[1.7.6.2],
165 link:RelNotes/1.7.6.1.txt[1.7.6.1],
f696543d
JH
166 link:RelNotes/1.7.6.txt[1.7.6].
167
e5af0de2 168* link:v1.7.5.4/git.html[documentation for release 1.7.5.4]
ec014eac
JH
169
170* release notes for
e5af0de2 171 link:RelNotes/1.7.5.4.txt[1.7.5.4],
3c3e0b3c 172 link:RelNotes/1.7.5.3.txt[1.7.5.3],
3d5ae435 173 link:RelNotes/1.7.5.2.txt[1.7.5.2],
2f312e88 174 link:RelNotes/1.7.5.1.txt[1.7.5.1],
ec014eac
JH
175 link:RelNotes/1.7.5.txt[1.7.5].
176
6ceb270c 177* link:v1.7.4.5/git.html[documentation for release 1.7.4.5]
7ed863a8
JH
178
179* release notes for
6ceb270c 180 link:RelNotes/1.7.4.5.txt[1.7.4.5],
6be05591 181 link:RelNotes/1.7.4.4.txt[1.7.4.4],
cb35c064
JH
182 link:RelNotes/1.7.4.3.txt[1.7.4.3],
183 link:RelNotes/1.7.4.2.txt[1.7.4.2],
9971d6d5 184 link:RelNotes/1.7.4.1.txt[1.7.4.1],
7ed863a8
JH
185 link:RelNotes/1.7.4.txt[1.7.4].
186
685e9d91 187* link:v1.7.3.5/git.html[documentation for release 1.7.3.5]
87b50542
JH
188
189* release notes for
685e9d91 190 link:RelNotes/1.7.3.5.txt[1.7.3.5],
15368e18 191 link:RelNotes/1.7.3.4.txt[1.7.3.4],
ed94cc76 192 link:RelNotes/1.7.3.3.txt[1.7.3.3],
8a904385 193 link:RelNotes/1.7.3.2.txt[1.7.3.2],
92c1e717 194 link:RelNotes/1.7.3.1.txt[1.7.3.1],
87b50542
JH
195 link:RelNotes/1.7.3.txt[1.7.3].
196
1b974346 197* link:v1.7.2.5/git.html[documentation for release 1.7.2.5]
64fdc08d
JH
198
199* release notes for
1b974346 200 link:RelNotes/1.7.2.5.txt[1.7.2.5],
ed94cc76 201 link:RelNotes/1.7.2.4.txt[1.7.2.4],
761e742d
NP
202 link:RelNotes/1.7.2.3.txt[1.7.2.3],
203 link:RelNotes/1.7.2.2.txt[1.7.2.2],
204 link:RelNotes/1.7.2.1.txt[1.7.2.1],
205 link:RelNotes/1.7.2.txt[1.7.2].
64fdc08d 206
1b974346 207* link:v1.7.1.4/git.html[documentation for release 1.7.1.4]
d599e048
JH
208
209* release notes for
1b974346 210 link:RelNotes/1.7.1.4.txt[1.7.1.4],
ed94cc76 211 link:RelNotes/1.7.1.3.txt[1.7.1.3],
761e742d
NP
212 link:RelNotes/1.7.1.2.txt[1.7.1.2],
213 link:RelNotes/1.7.1.1.txt[1.7.1.1],
214 link:RelNotes/1.7.1.txt[1.7.1].
d599e048 215
1b974346 216* link:v1.7.0.9/git.html[documentation for release 1.7.0.9]
e923eaeb
JH
217
218* release notes for
1b974346 219 link:RelNotes/1.7.0.9.txt[1.7.0.9],
ed94cc76 220 link:RelNotes/1.7.0.8.txt[1.7.0.8],
761e742d
NP
221 link:RelNotes/1.7.0.7.txt[1.7.0.7],
222 link:RelNotes/1.7.0.6.txt[1.7.0.6],
223 link:RelNotes/1.7.0.5.txt[1.7.0.5],
224 link:RelNotes/1.7.0.4.txt[1.7.0.4],
225 link:RelNotes/1.7.0.3.txt[1.7.0.3],
226 link:RelNotes/1.7.0.2.txt[1.7.0.2],
227 link:RelNotes/1.7.0.1.txt[1.7.0.1],
228 link:RelNotes/1.7.0.txt[1.7.0].
e923eaeb 229
1b974346 230* link:v1.6.6.3/git.html[documentation for release 1.6.6.3]
902f2353
JH
231
232* release notes for
1b974346 233 link:RelNotes/1.6.6.3.txt[1.6.6.3],
761e742d
NP
234 link:RelNotes/1.6.6.2.txt[1.6.6.2],
235 link:RelNotes/1.6.6.1.txt[1.6.6.1],
236 link:RelNotes/1.6.6.txt[1.6.6].
902f2353 237
1b974346 238* link:v1.6.5.9/git.html[documentation for release 1.6.5.9]
78d553b7
JH
239
240* release notes for
1b974346 241 link:RelNotes/1.6.5.9.txt[1.6.5.9],
761e742d
NP
242 link:RelNotes/1.6.5.8.txt[1.6.5.8],
243 link:RelNotes/1.6.5.7.txt[1.6.5.7],
244 link:RelNotes/1.6.5.6.txt[1.6.5.6],
245 link:RelNotes/1.6.5.5.txt[1.6.5.5],
246 link:RelNotes/1.6.5.4.txt[1.6.5.4],
247 link:RelNotes/1.6.5.3.txt[1.6.5.3],
248 link:RelNotes/1.6.5.2.txt[1.6.5.2],
249 link:RelNotes/1.6.5.1.txt[1.6.5.1],
250 link:RelNotes/1.6.5.txt[1.6.5].
78d553b7 251
1b974346 252* link:v1.6.4.5/git.html[documentation for release 1.6.4.5]
0a53e9dd
JH
253
254* release notes for
1b974346 255 link:RelNotes/1.6.4.5.txt[1.6.4.5],
761e742d
NP
256 link:RelNotes/1.6.4.4.txt[1.6.4.4],
257 link:RelNotes/1.6.4.3.txt[1.6.4.3],
258 link:RelNotes/1.6.4.2.txt[1.6.4.2],
259 link:RelNotes/1.6.4.1.txt[1.6.4.1],
260 link:RelNotes/1.6.4.txt[1.6.4].
0a53e9dd 261
441b40d8 262* link:v1.6.3.4/git.html[documentation for release 1.6.3.4]
6096d759
JH
263
264* release notes for
761e742d
NP
265 link:RelNotes/1.6.3.4.txt[1.6.3.4],
266 link:RelNotes/1.6.3.3.txt[1.6.3.3],
267 link:RelNotes/1.6.3.2.txt[1.6.3.2],
268 link:RelNotes/1.6.3.1.txt[1.6.3.1],
269 link:RelNotes/1.6.3.txt[1.6.3].
a95148de
JH
270
271* release notes for
761e742d
NP
272 link:RelNotes/1.6.2.5.txt[1.6.2.5],
273 link:RelNotes/1.6.2.4.txt[1.6.2.4],
274 link:RelNotes/1.6.2.3.txt[1.6.2.3],
275 link:RelNotes/1.6.2.2.txt[1.6.2.2],
276 link:RelNotes/1.6.2.1.txt[1.6.2.1],
277 link:RelNotes/1.6.2.txt[1.6.2].
a95148de 278
621f1b4b 279* link:v1.6.1.3/git.html[documentation for release 1.6.1.3]
8104ebfe
JH
280
281* release notes for
761e742d
NP
282 link:RelNotes/1.6.1.3.txt[1.6.1.3],
283 link:RelNotes/1.6.1.2.txt[1.6.1.2],
284 link:RelNotes/1.6.1.1.txt[1.6.1.1],
285 link:RelNotes/1.6.1.txt[1.6.1].
8104ebfe 286
efe05b01 287* link:v1.6.0.6/git.html[documentation for release 1.6.0.6]
ea02eef0
JH
288
289* release notes for
761e742d
NP
290 link:RelNotes/1.6.0.6.txt[1.6.0.6],
291 link:RelNotes/1.6.0.5.txt[1.6.0.5],
292 link:RelNotes/1.6.0.4.txt[1.6.0.4],
293 link:RelNotes/1.6.0.3.txt[1.6.0.3],
294 link:RelNotes/1.6.0.2.txt[1.6.0.2],
295 link:RelNotes/1.6.0.1.txt[1.6.0.1],
296 link:RelNotes/1.6.0.txt[1.6.0].
ea02eef0 297
efe05b01 298* link:v1.5.6.6/git.html[documentation for release 1.5.6.6]
e449f105
JH
299
300* release notes for
761e742d
NP
301 link:RelNotes/1.5.6.6.txt[1.5.6.6],
302 link:RelNotes/1.5.6.5.txt[1.5.6.5],
303 link:RelNotes/1.5.6.4.txt[1.5.6.4],
304 link:RelNotes/1.5.6.3.txt[1.5.6.3],
305 link:RelNotes/1.5.6.2.txt[1.5.6.2],
306 link:RelNotes/1.5.6.1.txt[1.5.6.1],
307 link:RelNotes/1.5.6.txt[1.5.6].
e449f105 308
efe05b01 309* link:v1.5.5.6/git.html[documentation for release 1.5.5.6]
1d2375dd
JH
310
311* release notes for
761e742d
NP
312 link:RelNotes/1.5.5.6.txt[1.5.5.6],
313 link:RelNotes/1.5.5.5.txt[1.5.5.5],
314 link:RelNotes/1.5.5.4.txt[1.5.5.4],
315 link:RelNotes/1.5.5.3.txt[1.5.5.3],
316 link:RelNotes/1.5.5.2.txt[1.5.5.2],
317 link:RelNotes/1.5.5.1.txt[1.5.5.1],
318 link:RelNotes/1.5.5.txt[1.5.5].
1d2375dd 319
efe05b01 320* link:v1.5.4.7/git.html[documentation for release 1.5.4.7]
6ce8e44a
JH
321
322* release notes for
761e742d
NP
323 link:RelNotes/1.5.4.7.txt[1.5.4.7],
324 link:RelNotes/1.5.4.6.txt[1.5.4.6],
325 link:RelNotes/1.5.4.5.txt[1.5.4.5],
326 link:RelNotes/1.5.4.4.txt[1.5.4.4],
327 link:RelNotes/1.5.4.3.txt[1.5.4.3],
328 link:RelNotes/1.5.4.2.txt[1.5.4.2],
329 link:RelNotes/1.5.4.1.txt[1.5.4.1],
330 link:RelNotes/1.5.4.txt[1.5.4].
6ce8e44a 331
e708af6e 332* link:v1.5.3.8/git.html[documentation for release 1.5.3.8]
5587cac2
JH
333
334* release notes for
761e742d
NP
335 link:RelNotes/1.5.3.8.txt[1.5.3.8],
336 link:RelNotes/1.5.3.7.txt[1.5.3.7],
337 link:RelNotes/1.5.3.6.txt[1.5.3.6],
338 link:RelNotes/1.5.3.5.txt[1.5.3.5],
339 link:RelNotes/1.5.3.4.txt[1.5.3.4],
340 link:RelNotes/1.5.3.3.txt[1.5.3.3],
341 link:RelNotes/1.5.3.2.txt[1.5.3.2],
342 link:RelNotes/1.5.3.1.txt[1.5.3.1],
343 link:RelNotes/1.5.3.txt[1.5.3].
b6e4db6a 344
e636106c
JH
345* link:v1.5.2.5/git.html[documentation for release 1.5.2.5]
346
aba170cd 347* release notes for
761e742d
NP
348 link:RelNotes/1.5.2.5.txt[1.5.2.5],
349 link:RelNotes/1.5.2.4.txt[1.5.2.4],
350 link:RelNotes/1.5.2.3.txt[1.5.2.3],
351 link:RelNotes/1.5.2.2.txt[1.5.2.2],
352 link:RelNotes/1.5.2.1.txt[1.5.2.1],
353 link:RelNotes/1.5.2.txt[1.5.2].
aba170cd
JH
354
355* link:v1.5.1.6/git.html[documentation for release 1.5.1.6]
356
357* release notes for
761e742d
NP
358 link:RelNotes/1.5.1.6.txt[1.5.1.6],
359 link:RelNotes/1.5.1.5.txt[1.5.1.5],
360 link:RelNotes/1.5.1.4.txt[1.5.1.4],
361 link:RelNotes/1.5.1.3.txt[1.5.1.3],
362 link:RelNotes/1.5.1.2.txt[1.5.1.2],
363 link:RelNotes/1.5.1.1.txt[1.5.1.1],
364 link:RelNotes/1.5.1.txt[1.5.1].
2ff3f61a
JH
365
366* link:v1.5.0.7/git.html[documentation for release 1.5.0.7]
367
aba170cd 368* release notes for
761e742d
NP
369 link:RelNotes/1.5.0.7.txt[1.5.0.7],
370 link:RelNotes/1.5.0.6.txt[1.5.0.6],
371 link:RelNotes/1.5.0.5.txt[1.5.0.5],
372 link:RelNotes/1.5.0.3.txt[1.5.0.3],
373 link:RelNotes/1.5.0.2.txt[1.5.0.2],
374 link:RelNotes/1.5.0.1.txt[1.5.0.1],
375 link:RelNotes/1.5.0.txt[1.5.0].
2ff3f61a
JH
376
377* documentation for release link:v1.4.4.4/git.html[1.4.4.4],
378 link:v1.3.3/git.html[1.3.3],
379 link:v1.2.6/git.html[1.2.6],
380 link:v1.0.13/git.html[1.0.13].
26cfcfbf
JH
381
382============
383
384endif::stalenotes[]
385
cb22bc44
AE
386OPTIONS
387-------
388--version::
2de9b711 389 Prints the Git suite version that the 'git' program came from.
cb22bc44
AE
390
391--help::
a87cd02c 392 Prints the synopsis and a list of the most commonly used
0f6f195b 393 commands. If the option '--all' or '-a' is given then all
2de9b711 394 available commands are printed. If a Git command is named this
0f6f195b 395 option will bring up the manual page for that command.
45533d26
CC
396+
397Other options are available to control how the manual page is
5162e697 398displayed. See linkgit:git-help[1] for more information,
db5d6666
JN
399because `git --help ...` is converted internally into `git
400help ...`.
cb22bc44 401
8b1fa778
AR
402-c <name>=<value>::
403 Pass a configuration parameter to the command. The value
404 given will override values from configuration files.
405 The <name> is expected in the same format as listed by
406 'git config' (subkeys separated by dots).
407
62b4698e 408--exec-path[=<path>]::
2de9b711 409 Path to wherever your core Git programs are installed.
cb22bc44 410 This can also be controlled by setting the GIT_EXEC_PATH
56992f76 411 environment variable. If no path is given, 'git' will print
cb22bc44
AE
412 the current setting and then exit.
413
89a56bfb 414--html-path::
2de9b711 415 Print the path, without trailing slash, where Git's HTML
239b5ed9 416 documentation is installed and exit.
89a56bfb 417
f2dd8c37 418--man-path::
239b5ed9 419 Print the manpath (see `man(1)`) for the man pages for
2de9b711 420 this version of Git and exit.
f2dd8c37
JS
421
422--info-path::
239b5ed9 423 Print the path where the Info files documenting this
2de9b711 424 version of Git are installed and exit.
89a56bfb 425
3240240f
SB
426-p::
427--paginate::
06300d97
JN
428 Pipe all output into 'less' (or if set, $PAGER) if standard
429 output is a terminal. This overrides the `pager.<cmd>`
430 configuration options (see the "Configuration Mechanism" section
431 below).
6acbcb92 432
463a849d 433--no-pager::
2de9b711 434 Do not pipe Git output into a pager.
463a849d 435
6acbcb92
JS
436--git-dir=<path>::
437 Set the path to the repository. This can also be controlled by
302cc11a
LY
438 setting the GIT_DIR environment variable. It can be an absolute
439 path or relative path to current working directory.
6acbcb92 440
892c41b9 441--work-tree=<path>::
ea472c1e
JH
442 Set the path to the working tree. It can be an absolute path
443 or a path relative to the current working directory.
892c41b9
ML
444 This can also be controlled by setting the GIT_WORK_TREE
445 environment variable and the core.worktree configuration
ea472c1e
JH
446 variable (see core.worktree in linkgit:git-config[1] for a
447 more detailed discussion).
892c41b9 448
d49483f0 449--namespace=<path>::
2de9b711 450 Set the Git namespace. See linkgit:gitnamespaces[7] for more
d49483f0
JT
451 details. Equivalent to setting the `GIT_NAMESPACE` environment
452 variable.
453
6acbcb92 454--bare::
9277d602
JH
455 Treat the repository as a bare repository. If GIT_DIR
456 environment is not set, it is set to the current working
457 directory.
458
b0fa7ab5 459--no-replace-objects::
2de9b711 460 Do not use replacement refs to replace Git objects. See
b0fa7ab5
CC
461 linkgit:git-replace[1] for more information.
462
823ab40f
JK
463--literal-pathspecs::
464 Treat pathspecs literally, rather than as glob patterns. This is
465 equivalent to setting the `GIT_LITERAL_PATHSPECS` environment
466 variable to `1`.
467
9755afbd 468
23091e95
BF
469GIT COMMANDS
470------------
9755afbd 471
2de9b711 472We divide Git into high level ("porcelain") commands and low level
23091e95 473("plumbing") commands.
8b15e2fb 474
23091e95
BF
475High-level commands (porcelain)
476-------------------------------
477
478We separate the porcelain commands into the main commands and some
479ancillary user utilities.
480
481Main porcelain commands
482~~~~~~~~~~~~~~~~~~~~~~~
905197de 483
377e8139 484include::cmds-mainporcelain.txt[]
e31bb3bb 485
90933efb 486Ancillary Commands
23091e95 487~~~~~~~~~~~~~~~~~~
2f2de9b4
JH
488Manipulators:
489
377e8139 490include::cmds-ancillarymanipulators.txt[]
204ee6a9 491
90933efb 492Interrogators:
204ee6a9 493
377e8139 494include::cmds-ancillaryinterrogators.txt[]
7fc9d69f 495
89bf2077
JH
496
497Interacting with Others
498~~~~~~~~~~~~~~~~~~~~~~~
499
500These commands are to interact with foreign SCM and with other
501people via patch over e-mail.
502
503include::cmds-foreignscminterface.txt[]
504
505
b1f33d62
RR
506Low-level commands (plumbing)
507-----------------------------
508
2de9b711 509Although Git includes its
b1f33d62
RR
510own porcelain layer, its low-level commands are sufficient to support
511development of alternative porcelains. Developers of such porcelains
5162e697
DM
512might start by reading about linkgit:git-update-index[1] and
513linkgit:git-read-tree[1].
b1f33d62 514
89bf2077
JH
515The interface (input, output, set of options and the semantics)
516to these low-level commands are meant to be a lot more stable
517than Porcelain level commands, because these commands are
518primarily for scripted use. The interface to Porcelain commands
519on the other hand are subject to change in order to improve the
520end user experience.
521
522The following description divides
523the low-level commands into commands that manipulate objects (in
b1f33d62
RR
524the repository, index, and working tree), commands that interrogate and
525compare objects, and commands that move objects and references between
526repositories.
527
89bf2077 528
b1f33d62
RR
529Manipulation commands
530~~~~~~~~~~~~~~~~~~~~~
b1f33d62 531
377e8139 532include::cmds-plumbingmanipulators.txt[]
b1f33d62
RR
533
534
535Interrogation commands
536~~~~~~~~~~~~~~~~~~~~~~
537
377e8139 538include::cmds-plumbinginterrogators.txt[]
b1f33d62
RR
539
540In general, the interrogate commands do not touch the files in
541the working tree.
542
543
544Synching repositories
545~~~~~~~~~~~~~~~~~~~~~
546
377e8139 547include::cmds-synchingrepositories.txt[]
b1f33d62 548
57f6ec02 549The following are helper commands used by the above; end users
89bf2077
JH
550typically do not use them directly.
551
552include::cmds-synchelpers.txt[]
553
554
555Internal helper commands
556~~~~~~~~~~~~~~~~~~~~~~~~
557
558These are internal helper commands used by other commands; end
559users typically do not use them directly.
560
561include::cmds-purehelpers.txt[]
562
b1f33d62 563
5773c9f2
JH
564Configuration Mechanism
565-----------------------
566
c0179c0d
MM
567Git uses a simple text format to store customizations that are per
568repository and are per user. Such a configuration file may look
569like this:
5773c9f2
JH
570
571------------
572#
2fa090b6 573# A '#' or ';' character indicates a comment.
5773c9f2
JH
574#
575
576; core variables
577[core]
578 ; Don't trust file modes
579 filemode = false
580
581; user identity
582[user]
583 name = "Junio C Hamano"
c0179c0d 584 email = "gitster@pobox.com"
5773c9f2
JH
585
586------------
587
588Various commands read from the configuration file and adjust
06300d97 589their operation accordingly. See linkgit:git-config[1] for a
c0179c0d 590list and more details about the configuration mechanism.
5773c9f2
JH
591
592
6c84e2e0 593Identifier Terminology
2cf565c5
DG
594----------------------
595<object>::
2fa090b6 596 Indicates the object name for any type of object.
2cf565c5
DG
597
598<blob>::
2fa090b6 599 Indicates a blob object name.
2cf565c5
DG
600
601<tree>::
2fa090b6 602 Indicates a tree object name.
2cf565c5
DG
603
604<commit>::
2fa090b6 605 Indicates a commit object name.
2cf565c5
DG
606
607<tree-ish>::
2fa090b6 608 Indicates a tree, commit or tag object name. A
6c84e2e0
DG
609 command that takes a <tree-ish> argument ultimately wants to
610 operate on a <tree> object but automatically dereferences
611 <commit> and <tag> objects that point at a <tree>.
2cf565c5 612
043d7605
TT
613<commit-ish>::
614 Indicates a commit or tag object name. A
615 command that takes a <commit-ish> argument ultimately wants to
616 operate on a <commit> object but automatically dereferences
617 <tag> objects that point at a <commit>.
618
2cf565c5
DG
619<type>::
620 Indicates that an object type is required.
2fa090b6 621 Currently one of: `blob`, `tree`, `commit`, or `tag`.
2cf565c5
DG
622
623<file>::
2fa090b6
JH
624 Indicates a filename - almost always relative to the
625 root of the tree structure `GIT_INDEX_FILE` describes.
2cf565c5 626
c1bdacf9
DG
627Symbolic Identifiers
628--------------------
2de9b711 629Any Git command accepting any <object> can also use the following
6c84e2e0 630symbolic notation:
c1bdacf9
DG
631
632HEAD::
0abcfbff 633 indicates the head of the current branch.
2fa090b6 634
c1bdacf9 635<tag>::
2fa090b6 636 a valid tag 'name'
0abcfbff 637 (i.e. a `refs/tags/<tag>` reference).
2fa090b6 638
c1bdacf9 639<head>::
2fa090b6 640 a valid head 'name'
0abcfbff 641 (i.e. a `refs/heads/<head>` reference).
2fa090b6 642
d47107d8 643For a more complete list of ways to spell object names, see
9d83e382 644"SPECIFYING REVISIONS" section in linkgit:gitrevisions[7].
d47107d8 645
c1bdacf9
DG
646
647File/Directory Structure
648------------------------
c1bdacf9 649
6998e4db 650Please see the linkgit:gitrepository-layout[5] document.
c1bdacf9 651
6998e4db 652Read linkgit:githooks[5] for more details about each hook.
6250ad1e 653
c1bdacf9 654Higher level SCMs may provide and manage additional information in the
2fa090b6 655`$GIT_DIR`.
c1bdacf9 656
a1d4aa74 657
2cf565c5
DG
658Terminology
659-----------
6998e4db 660Please see linkgit:gitglossary[7].
2cf565c5
DG
661
662
663Environment Variables
664---------------------
2de9b711 665Various Git commands use the following environment variables:
2cf565c5 666
2de9b711 667The Git Repository
c1bdacf9 668~~~~~~~~~~~~~~~~~~
2de9b711 669These environment variables apply to 'all' core Git commands. Nb: it
c1bdacf9 670is worth noting that they may be used/overridden by SCMS sitting above
2de9b711 671Git so take care if using Cogito etc.
c1bdacf9
DG
672
673'GIT_INDEX_FILE'::
674 This environment allows the specification of an alternate
5f3aa197
LS
675 index file. If not specified, the default of `$GIT_DIR/index`
676 is used.
c1bdacf9
DG
677
678'GIT_OBJECT_DIRECTORY'::
679 If the object storage directory is specified via this
680 environment variable then the sha1 directories are created
681 underneath - otherwise the default `$GIT_DIR/objects`
682 directory is used.
683
684'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
2de9b711 685 Due to the immutable nature of Git objects, old objects can be
c1bdacf9 686 archived into shared, read-only directories. This variable
80ba074f 687 specifies a ":" separated (on Windows ";" separated) list
2de9b711 688 of Git object directories which can be used to search for Git
80ba074f 689 objects. New objects will not be written to these directories.
c1bdacf9
DG
690
691'GIT_DIR'::
2fa090b6
JH
692 If the 'GIT_DIR' environment variable is set then it
693 specifies a path to use instead of the default `.git`
694 for the base of the repository.
75940a00 695 The '--git-dir' command-line option also sets this value.
c1bdacf9 696
892c41b9 697'GIT_WORK_TREE'::
a758a349 698 Set the path to the root of the working tree.
892c41b9
ML
699 This can also be controlled by the '--work-tree' command line
700 option and the core.worktree configuration variable.
701
d49483f0 702'GIT_NAMESPACE'::
2de9b711 703 Set the Git namespace; see linkgit:gitnamespaces[7] for details.
d49483f0
JT
704 The '--namespace' command-line option also sets this value.
705
0454dd93 706'GIT_CEILING_DIRECTORIES'::
7ec30aaa 707 This should be a colon-separated list of absolute paths. If
3e07d268 708 set, it is a list of directories that Git should not chdir up
7ec30aaa
MH
709 into while looking for a repository directory (useful for
710 excluding slow-loading network directories). It will not
711 exclude the current working directory or a GIT_DIR set on the
712 command line or in the environment. Normally, Git has to read
713 the entries in this list and resolve any symlink that
714 might be present in order to compare them with the current
715 directory. However, if even this access is slow, you
716 can add an empty entry to the list to tell Git that the
717 subsequent entries are not symlinks and needn't be resolved;
718 e.g.,
719 'GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink'.
0454dd93 720
cf87463e 721'GIT_DISCOVERY_ACROSS_FILESYSTEM'::
e6405517 722 When run in a directory that does not have ".git" repository
2de9b711 723 directory, Git tries to find such a directory in the parent
e6405517
JH
724 directories to find the top of the working tree, but by default it
725 does not cross filesystem boundaries. This environment variable
2de9b711 726 can be set to true to tell Git not to stop at filesystem
cf87463e
JH
727 boundaries. Like 'GIT_CEILING_DIRECTORIES', this will not affect
728 an explicit repository directory set via 'GIT_DIR' or on the
729 command line.
8030e442 730
2de9b711 731Git Commits
c1bdacf9
DG
732~~~~~~~~~~~
733'GIT_AUTHOR_NAME'::
734'GIT_AUTHOR_EMAIL'::
735'GIT_AUTHOR_DATE'::
736'GIT_COMMITTER_NAME'::
737'GIT_COMMITTER_EMAIL'::
4e58bf97 738'GIT_COMMITTER_DATE'::
28a94f88 739'EMAIL'::
5162e697 740 see linkgit:git-commit-tree[1]
c1bdacf9 741
2de9b711 742Git Diffs
c1bdacf9 743~~~~~~~~~
d81ed1b5 744'GIT_DIFF_OPTS'::
fde97d8a
SE
745 Only valid setting is "--unified=??" or "-u??" to set the
746 number of context lines shown when a unified diff is created.
747 This takes precedence over any "-U" or "--unified" option
2de9b711 748 value passed on the Git diff command line.
fde97d8a 749
d81ed1b5 750'GIT_EXTERNAL_DIFF'::
fde97d8a
SE
751 When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
752 program named by it is called, instead of the diff invocation
753 described above. For a path that is added, removed, or modified,
754 'GIT_EXTERNAL_DIFF' is called with 7 parameters:
755
756 path old-file old-hex old-mode new-file new-hex new-mode
757+
758where:
759
760 <old|new>-file:: are files GIT_EXTERNAL_DIFF can use to read the
761 contents of <old|new>,
d5fa1f1a 762 <old|new>-hex:: are the 40-hexdigit SHA-1 hashes,
fde97d8a 763 <old|new>-mode:: are the octal representation of the file modes.
fde97d8a
SE
764+
765The file parameters can point at the user's working file
766(e.g. `new-file` in "git-diff-files"), `/dev/null` (e.g. `old-file`
767when a new file is added), or a temporary file (e.g. `old-file` in the
768index). 'GIT_EXTERNAL_DIFF' should not worry about unlinking the
769temporary file --- it is removed when 'GIT_EXTERNAL_DIFF' exits.
770+
771For a path that is unmerged, 'GIT_EXTERNAL_DIFF' is called with 1
772parameter, <path>.
2cf565c5 773
575ba9d6
ML
774other
775~~~~~
dbddb714
JN
776'GIT_MERGE_VERBOSITY'::
777 A number controlling the amount of output shown by
778 the recursive merge strategy. Overrides merge.verbosity.
5162e697 779 See linkgit:git-merge[1]
dbddb714 780
c27d205a 781'GIT_PAGER'::
a7738c77 782 This environment variable overrides `$PAGER`. If it is set
2de9b711 783 to an empty string or to the value "cat", Git will not launch
ab54cd6c
JN
784 a pager. See also the `core.pager` option in
785 linkgit:git-config[1].
c27d205a 786
36384c97
RSM
787'GIT_EDITOR'::
788 This environment variable overrides `$EDITOR` and `$VISUAL`.
2de9b711 789 It is used by several Git commands when, on interactive mode,
36384c97
RSM
790 an editor is to be launched. See also linkgit:git-var[1]
791 and the `core.editor` option in linkgit:git-config[1].
792
d5538b41 793'GIT_SSH'::
0b444cdb
TR
794 If this environment variable is set then 'git fetch'
795 and 'git push' will use this command instead
2fd02c92 796 of 'ssh' when they need to connect to a remote system.
e39c695d
DB
797 The '$GIT_SSH' command will be given exactly two or
798 four arguments: the 'username@host' (or just 'host')
799 from the URL and the shell command to execute on that
800 remote system, optionally preceded by '-p' (literally) and
801 the 'port' from the URL when it specifies something other
802 than the default SSH port.
d5538b41
SP
803+
804To pass options to the program that you want to list in GIT_SSH
805you will need to wrap the program and options into a shell script,
806then set GIT_SSH to refer to the shell script.
807+
808Usually it is easier to configure any desired options through your
809personal `.ssh/config` file. Please consult your ssh documentation
810for further details.
811
453842c9 812'GIT_ASKPASS'::
2de9b711 813 If this environment variable is set, then Git commands which need to
453842c9
KF
814 acquire passwords or passphrases (e.g. for HTTP or IMAP authentication)
815 will call this program with a suitable prompt as command line argument
816 and read the password from its STDOUT. See also the 'core.askpass'
817 option in linkgit:git-config[1].
818
e8ef401c
JN
819'GIT_CONFIG_NOSYSTEM'::
820 Whether to skip reading settings from the system-wide
821 `$(prefix)/etc/gitconfig` file. This environment variable can
822 be used along with `$HOME` and `$XDG_CONFIG_HOME` to create a
823 predictable environment for a picky script, or you can set it
824 temporarily to avoid using a buggy `/etc/gitconfig` file while
825 waiting for someone with sufficient permissions to fix it.
826
06f59e9f
TT
827'GIT_FLUSH'::
828 If this environment variable is set to "1", then commands such
0b444cdb 829 as 'git blame' (in incremental mode), 'git rev-list', 'git log',
f1ed7fea
AS
830 'git check-attr', 'git check-ignore', and 'git whatchanged' will
831 force a flush of the output stream after each record have been
832 flushed. If this
06f59e9f
TT
833 variable is set to "0", the output of these commands will be done
834 using completely buffered I/O. If this environment variable is
2de9b711 835 not set, Git will choose buffered or record-oriented flushing
06f59e9f
TT
836 based on whether stdout appears to be redirected to a file or not.
837
575ba9d6 838'GIT_TRACE'::
2886bdb1 839 If this variable is set to "1", "2" or "true" (comparison
2de9b711 840 is case insensitive), Git will print `trace:` messages on
575ba9d6
ML
841 stderr telling about alias expansion, built-in command
842 execution and external command execution.
2886bdb1 843 If this variable is set to an integer value greater than 1
2de9b711 844 and lower than 10 (strictly) then Git will interpret this
2886bdb1
CC
845 value as an open file descriptor and will try to write the
846 trace messages into this file descriptor.
847 Alternatively, if this variable is set to an absolute path
2de9b711 848 (starting with a '/' character), Git will interpret this
2886bdb1
CC
849 as a file path and will try to write the trace messages
850 into it.
575ba9d6 851
b12ca963
NTND
852'GIT_TRACE_PACK_ACCESS'::
853 If this variable is set to a path, a file will be created at
854 the given path logging all accesses to any packs. For each
855 access, the pack file name and an offset in the pack is
856 recorded. This may be helpful for troubleshooting some
857 pack-related performance problems.
858
1dd278ce
NTND
859'GIT_TRACE_PACKET'::
860 If this variable is set, it shows a trace of all packets
861 coming in or out of a given program. This can help with
862 debugging object negotiation or other protocol issues. Tracing
863 is turned off at a packet starting with "PACK".
864
823ab40f 865GIT_LITERAL_PATHSPECS::
2de9b711 866 Setting this variable to `1` will cause Git to treat all
823ab40f
JK
867 pathspecs literally, rather than as glob patterns. For example,
868 running `GIT_LITERAL_PATHSPECS=1 git log -- '*.c'` will search
869 for commits that touch the path `*.c`, not any paths that the
870 glob `*.c` matches. You might want this if you are feeding
2de9b711 871 literal paths to Git (e.g., paths previously given to you by
823ab40f
JK
872 `git ls-tree`, `--raw` diff output, etc).
873
874
8db9307c
JH
875Discussion[[Discussion]]
876------------------------
40dac517
BF
877
878More detail on the following is available from the
2de9b711 879link:user-manual.html#git-concepts[Git concepts chapter of the
6998e4db 880user-manual] and linkgit:gitcore-tutorial[7].
40dac517 881
2de9b711 882A Git project normally consists of a working directory with a ".git"
40dac517
BF
883subdirectory at the top level. The .git directory contains, among other
884things, a compressed object database representing the complete history
885of the project, an "index" file which links that history to the current
886contents of the working tree, and named pointers into that history such
887as tags and branch heads.
888
889The object database contains objects of three main types: blobs, which
890hold file data; trees, which point to blobs and other trees to build up
02ff6250 891directory hierarchies; and commits, which each reference a single tree
40dac517
BF
892and some number of parent commits.
893
894The commit, equivalent to what other systems call a "changeset" or
895"version", represents a step in the project's history, and each parent
896represents an immediately preceding step. Commits with more than one
897parent represent merges of independent lines of development.
898
d5fa1f1a 899All objects are named by the SHA-1 hash of their contents, normally
40dac517
BF
900written as a string of 40 hex digits. Such names are globally unique.
901The entire history leading up to a commit can be vouched for by signing
902just that commit. A fourth object type, the tag, is provided for this
903purpose.
904
905When first created, objects are stored in individual files, but for
906efficiency may later be compressed together into "pack files".
907
908Named pointers called refs mark interesting points in history. A ref
d5fa1f1a
TA
909may contain the SHA-1 name of an object or the name of another ref. Refs
910with names beginning `ref/head/` contain the SHA-1 name of the most
911recent commit (or "head") of a branch under development. SHA-1 names of
40dac517
BF
912tags of interest are stored under `ref/tags/`. A special ref named
913`HEAD` contains the name of the currently checked-out branch.
914
915The index file is initialized with a list of all paths and, for each
916path, a blob object and a set of attributes. The blob object represents
917the contents of the file as of the head of the current branch. The
918attributes (last modified time, size, etc.) are taken from the
919corresponding file in the working tree. Subsequent changes to the
920working tree can be found by comparing these attributes. The index may
921be updated with new content, and new commits may be created from the
922content stored in the index.
923
924The index is also capable of storing multiple entries (called "stages")
925for a given pathname. These stages are used to hold the various
926unmerged version of a file when a merge is in progress.
6c84e2e0 927
7687ae98
JH
928FURTHER DOCUMENTATION
929---------------------
930
931See the references in the "description" section to get started
2de9b711 932using Git. The following is probably more detail than necessary
7687ae98
JH
933for a first-time user.
934
2de9b711 935The link:user-manual.html#git-concepts[Git concepts chapter of the
7687ae98 936user-manual] and linkgit:gitcore-tutorial[7] both provide
2de9b711 937introductions to the underlying Git architecture.
7687ae98
JH
938
939See linkgit:gitworkflows[7] for an overview of recommended workflows.
940
941See also the link:howto-index.html[howto] documents for some useful
942examples.
943
944The internals are documented in the
48a8c26c 945link:technical/api-index.html[Git API documentation].
7687ae98
JH
946
947Users migrating from CVS may also want to
948read linkgit:gitcvs-migration[7].
949
950
cb22bc44
AE
951Authors
952-------
48bb914e 953Git was started by Linus Torvalds, and is currently maintained by Junio
2de9b711 954C Hamano. Numerous contributions have come from the Git mailing list
6ecc01f2
JH
955<git@vger.kernel.org>. http://www.ohloh.net/p/git/contributors/summary
956gives you a more complete list of contributors.
957
958If you have a clone of git.git itself, the
d8f708f8
JK
959output of linkgit:git-shortlog[1] and linkgit:git-blame[1] can show you
960the authors for specific parts of the project.
2cf565c5 961
c97ca277
JH
962Reporting Bugs
963--------------
964
965Report bugs to the Git mailing list <git@vger.kernel.org> where the
966development and maintenance is primarily done. You do not have to be
967subscribed to the list to send a message there.
968
497c8331
CC
969SEE ALSO
970--------
971linkgit:gittutorial[7], linkgit:gittutorial-2[7],
5cbef01a 972link:everyday.html[Everyday Git], linkgit:gitcvs-migration[7],
497c8331 973linkgit:gitglossary[7], linkgit:gitcore-tutorial[7],
801a011d
TR
974linkgit:gitcli[7], link:user-manual.html[The Git User's Manual],
975linkgit:gitworkflows[7]
497c8331 976
2cf565c5
DG
977GIT
978---
9e1f0a85 979Part of the linkgit:git[1] suite