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