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