]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git.txt
Merge branch 'maint-2.4' into maint-2.5
[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]
44e1e4d6 12'git' [--version] [--help] [-C <path>] [-c <name>=<value>]
68e4b552 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
673151a9 25linkgit:giteveryday[7] for a useful minimum set of
7687ae98
JH
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]
06ab60c0 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
06ab60c0 42unreleased) version of Git, that is available from the 'master'
2ff3f61a
JH
43branch of the `git.git` repository.
44Documentation for older releases are available here:
43a8e4fe 45
24358560 46* link:v2.5.4/git.html[documentation for release 2.5.4]
a17c56c0
JH
47
48* release notes for
24358560 49 link:RelNotes/2.5.4.txt[2.5.4],
ee6ad5f4 50 link:RelNotes/2.5.3.txt[2.5.3],
27ea6f85 51 link:RelNotes/2.5.2.txt[2.5.2],
c415fb79 52 link:RelNotes/2.5.1.txt[2.5.1],
e88b8586 53 link:RelNotes/2.5.0.txt[2.5].
a17c56c0 54
76542869 55* link:v2.4.11/git.html[documentation for release 2.4.11]
3d4a3ffe
JH
56
57* release notes for
76542869 58 link:RelNotes/2.4.11.txt[2.4.11],
a2558fb8 59 link:RelNotes/2.4.10.txt[2.4.10],
74b67638 60 link:RelNotes/2.4.9.txt[2.4.9],
8545932d 61 link:RelNotes/2.4.8.txt[2.4.8],
ca00f80b 62 link:RelNotes/2.4.7.txt[2.4.7],
bb3e7b1a 63 link:RelNotes/2.4.6.txt[2.4.6],
0df0541b 64 link:RelNotes/2.4.5.txt[2.4.5],
f09bd215 65 link:RelNotes/2.4.4.txt[2.4.4],
69f9a6e5 66 link:RelNotes/2.4.3.txt[2.4.3],
9eabf5b5 67 link:RelNotes/2.4.2.txt[2.4.2],
aaa7e0d7 68 link:RelNotes/2.4.1.txt[2.4.1],
3d4a3ffe
JH
69 link:RelNotes/2.4.0.txt[2.4].
70
18b58f70 71* link:v2.3.10/git.html[documentation for release 2.3.10]
9874fca7
JH
72
73* release notes for
18b58f70 74 link:RelNotes/2.3.10.txt[2.3.10],
ecad27cf 75 link:RelNotes/2.3.9.txt[2.3.9],
9a3d6375 76 link:RelNotes/2.3.8.txt[2.3.8],
16018ae5 77 link:RelNotes/2.3.7.txt[2.3.7],
ba63bfaa 78 link:RelNotes/2.3.6.txt[2.3.6],
52735a68 79 link:RelNotes/2.3.5.txt[2.3.5],
3a52578e 80 link:RelNotes/2.3.4.txt[2.3.4],
bb857753 81 link:RelNotes/2.3.3.txt[2.3.3],
1165ae6f 82 link:RelNotes/2.3.2.txt[2.3.2],
8004647a 83 link:RelNotes/2.3.1.txt[2.3.1],
9874fca7
JH
84 link:RelNotes/2.3.0.txt[2.3].
85
441c4a40 86* link:v2.2.3/git.html[documentation for release 2.2.3]
b260d265
JH
87
88* release notes for
441c4a40 89 link:RelNotes/2.2.3.txt[2.2.3],
fdf96a20 90 link:RelNotes/2.2.2.txt[2.2.2],
9b7cbb31 91 link:RelNotes/2.2.1.txt[2.2.1],
b260d265
JH
92 link:RelNotes/2.2.0.txt[2.2].
93
8e36a6d5 94* link:v2.1.4/git.html[documentation for release 2.1.4]
6c4ab27f
JH
95
96* release notes for
8e36a6d5 97 link:RelNotes/2.1.4.txt[2.1.4],
49c3e926 98 link:RelNotes/2.1.3.txt[2.1.3],
80b616d0 99 link:RelNotes/2.1.2.txt[2.1.2],
349cb509 100 link:RelNotes/2.1.1.txt[2.1.1],
6c4ab27f
JH
101 link:RelNotes/2.1.0.txt[2.1].
102
9a8c2b67 103* link:v2.0.5/git.html[documentation for release 2.0.5]
e156455e
JH
104
105* release notes for
9a8c2b67 106 link:RelNotes/2.0.5.txt[2.0.5],
32f56600 107 link:RelNotes/2.0.4.txt[2.0.4],
740c281d 108 link:RelNotes/2.0.3.txt[2.0.3],
ebc5da32 109 link:RelNotes/2.0.2.txt[2.0.2],
341e7e8e 110 link:RelNotes/2.0.1.txt[2.0.1],
e156455e
JH
111 link:RelNotes/2.0.0.txt[2.0.0].
112
83332636 113* link:v1.9.5/git.html[documentation for release 1.9.5]
5f95c9f8
JH
114
115* release notes for
83332636 116 link:RelNotes/1.9.5.txt[1.9.5],
34d52175 117 link:RelNotes/1.9.4.txt[1.9.4],
eea59137 118 link:RelNotes/1.9.3.txt[1.9.3],
0bc85abb 119 link:RelNotes/1.9.2.txt[1.9.2],
cee0c275 120 link:RelNotes/1.9.1.txt[1.9.1],
5f95c9f8
JH
121 link:RelNotes/1.9.0.txt[1.9.0].
122
5c8213a7 123* link:v1.8.5.6/git.html[documentation for release 1.8.5.6]
d2446dfd
JH
124
125* release notes for
5c8213a7 126 link:RelNotes/1.8.5.6.txt[1.8.5.6],
7bbc4e8f 127 link:RelNotes/1.8.5.5.txt[1.8.5.5],
3330a2c4 128 link:RelNotes/1.8.5.4.txt[1.8.5.4],
4224916a 129 link:RelNotes/1.8.5.3.txt[1.8.5.3],
5512ac58 130 link:RelNotes/1.8.5.2.txt[1.8.5.2],
a155a5f0 131 link:RelNotes/1.8.5.1.txt[1.8.5.1],
d2446dfd
JH
132 link:RelNotes/1.8.5.txt[1.8.5].
133
2f93541d 134* link:v1.8.4.5/git.html[documentation for release 1.8.4.5]
e230c568
JH
135
136* release notes for
2f93541d 137 link:RelNotes/1.8.4.5.txt[1.8.4.5],
becb4336 138 link:RelNotes/1.8.4.4.txt[1.8.4.4],
d7d2c879 139 link:RelNotes/1.8.4.3.txt[1.8.4.3],
dcb11cca 140 link:RelNotes/1.8.4.2.txt[1.8.4.2],
02a110ad 141 link:RelNotes/1.8.4.1.txt[1.8.4.1],
e230c568
JH
142 link:RelNotes/1.8.4.txt[1.8.4].
143
117eea7e 144* link:v1.8.3.4/git.html[documentation for release 1.8.3.4]
54219a4d
JH
145
146* release notes for
117eea7e 147 link:RelNotes/1.8.3.4.txt[1.8.3.4],
5addd1c7 148 link:RelNotes/1.8.3.3.txt[1.8.3.3],
3a461832 149 link:RelNotes/1.8.3.2.txt[1.8.3.2],
362de916 150 link:RelNotes/1.8.3.1.txt[1.8.3.1],
54219a4d
JH
151 link:RelNotes/1.8.3.txt[1.8.3].
152
92758dd2 153* link:v1.8.2.3/git.html[documentation for release 1.8.2.3]
239222f5
JH
154
155* release notes for
54219a4d
JH
156 link:RelNotes/1.8.2.3.txt[1.8.2.3],
157 link:RelNotes/1.8.2.2.txt[1.8.2.2],
158 link:RelNotes/1.8.2.1.txt[1.8.2.1],
239222f5
JH
159 link:RelNotes/1.8.2.txt[1.8.2].
160
2137ce01 161* link:v1.8.1.6/git.html[documentation for release 1.8.1.6]
5d417842
JH
162
163* release notes for
2137ce01 164 link:RelNotes/1.8.1.6.txt[1.8.1.6],
e6363a49 165 link:RelNotes/1.8.1.5.txt[1.8.1.5],
dff9f883 166 link:RelNotes/1.8.1.4.txt[1.8.1.4],
f3500825
JH
167 link:RelNotes/1.8.1.3.txt[1.8.1.3],
168 link:RelNotes/1.8.1.2.txt[1.8.1.2],
e4f59a32 169 link:RelNotes/1.8.1.1.txt[1.8.1.1],
5d417842
JH
170 link:RelNotes/1.8.1.txt[1.8.1].
171
15999998 172* link:v1.8.0.3/git.html[documentation for release 1.8.0.3]
8c7a786b
JH
173
174* release notes for
15999998 175 link:RelNotes/1.8.0.3.txt[1.8.0.3],
3e53891f 176 link:RelNotes/1.8.0.2.txt[1.8.0.2],
ed9fe755
JH
177 link:RelNotes/1.8.0.1.txt[1.8.0.1],
178 link:RelNotes/1.8.0.txt[1.8.0].
8c7a786b 179
7e201053 180* link:v1.7.12.4/git.html[documentation for release 1.7.12.4]
889d3589
JH
181
182* release notes for
7e201053 183 link:RelNotes/1.7.12.4.txt[1.7.12.4],
234cd456 184 link:RelNotes/1.7.12.3.txt[1.7.12.3],
d8cf053d 185 link:RelNotes/1.7.12.2.txt[1.7.12.2],
304b7d99 186 link:RelNotes/1.7.12.1.txt[1.7.12.1],
889d3589
JH
187 link:RelNotes/1.7.12.txt[1.7.12].
188
bafc478f 189* link:v1.7.11.7/git.html[documentation for release 1.7.11.7]
0ce2e396
JH
190
191* release notes for
bafc478f 192 link:RelNotes/1.7.11.7.txt[1.7.11.7],
e09e4024 193 link:RelNotes/1.7.11.6.txt[1.7.11.6],
cd7c0be1 194 link:RelNotes/1.7.11.5.txt[1.7.11.5],
0e4c8822 195 link:RelNotes/1.7.11.4.txt[1.7.11.4],
e6dfbcf1 196 link:RelNotes/1.7.11.3.txt[1.7.11.3],
8d141a1d 197 link:RelNotes/1.7.11.2.txt[1.7.11.2],
0e64a95a 198 link:RelNotes/1.7.11.1.txt[1.7.11.1],
0ce2e396
JH
199 link:RelNotes/1.7.11.txt[1.7.11].
200
785ee496 201* link:v1.7.10.5/git.html[documentation for release 1.7.10.5]
e8dde3e5
JH
202
203* release notes for
785ee496 204 link:RelNotes/1.7.10.5.txt[1.7.10.5],
121f71f0 205 link:RelNotes/1.7.10.4.txt[1.7.10.4],
6a6d72b1 206 link:RelNotes/1.7.10.3.txt[1.7.10.3],
b6555d73 207 link:RelNotes/1.7.10.2.txt[1.7.10.2],
bf505158 208 link:RelNotes/1.7.10.1.txt[1.7.10.1],
e8dde3e5
JH
209 link:RelNotes/1.7.10.txt[1.7.10].
210
d0f1ea60 211* link:v1.7.9.7/git.html[documentation for release 1.7.9.7]
828ea97d
JH
212
213* release notes for
d0f1ea60 214 link:RelNotes/1.7.9.7.txt[1.7.9.7],
cb2ed324 215 link:RelNotes/1.7.9.6.txt[1.7.9.6],
8ced9c90 216 link:RelNotes/1.7.9.5.txt[1.7.9.5],
a4603481 217 link:RelNotes/1.7.9.4.txt[1.7.9.4],
69f4e08f 218 link:RelNotes/1.7.9.3.txt[1.7.9.3],
78f4c9f6 219 link:RelNotes/1.7.9.2.txt[1.7.9.2],
90020e3b 220 link:RelNotes/1.7.9.1.txt[1.7.9.1],
828ea97d
JH
221 link:RelNotes/1.7.9.txt[1.7.9].
222
d9f5ef7a 223* link:v1.7.8.6/git.html[documentation for release 1.7.8.6]
406da780
JH
224
225* release notes for
d9f5ef7a 226 link:RelNotes/1.7.8.6.txt[1.7.8.6],
cb2ed324 227 link:RelNotes/1.7.8.5.txt[1.7.8.5],
c572f491 228 link:RelNotes/1.7.8.4.txt[1.7.8.4],
5f4d133f
JH
229 link:RelNotes/1.7.8.3.txt[1.7.8.3],
230 link:RelNotes/1.7.8.2.txt[1.7.8.2],
231 link:RelNotes/1.7.8.1.txt[1.7.8.1],
406da780
JH
232 link:RelNotes/1.7.8.txt[1.7.8].
233
82588584 234* link:v1.7.7.7/git.html[documentation for release 1.7.7.7]
703f05ad
JH
235
236* release notes for
82588584 237 link:RelNotes/1.7.7.7.txt[1.7.7.7],
c572f491 238 link:RelNotes/1.7.7.6.txt[1.7.7.6],
66c11f02
JH
239 link:RelNotes/1.7.7.5.txt[1.7.7.5],
240 link:RelNotes/1.7.7.4.txt[1.7.7.4],
241 link:RelNotes/1.7.7.3.txt[1.7.7.3],
242 link:RelNotes/1.7.7.2.txt[1.7.7.2],
f7d958df 243 link:RelNotes/1.7.7.1.txt[1.7.7.1],
703f05ad
JH
244 link:RelNotes/1.7.7.txt[1.7.7].
245
f174a258 246* link:v1.7.6.6/git.html[documentation for release 1.7.6.6]
f696543d
JH
247
248* release notes for
f174a258 249 link:RelNotes/1.7.6.6.txt[1.7.6.6],
15b7898c 250 link:RelNotes/1.7.6.5.txt[1.7.6.5],
63205264 251 link:RelNotes/1.7.6.4.txt[1.7.6.4],
740a8fc2 252 link:RelNotes/1.7.6.3.txt[1.7.6.3],
509d5970
JH
253 link:RelNotes/1.7.6.2.txt[1.7.6.2],
254 link:RelNotes/1.7.6.1.txt[1.7.6.1],
f696543d
JH
255 link:RelNotes/1.7.6.txt[1.7.6].
256
e5af0de2 257* link:v1.7.5.4/git.html[documentation for release 1.7.5.4]
ec014eac
JH
258
259* release notes for
e5af0de2 260 link:RelNotes/1.7.5.4.txt[1.7.5.4],
3c3e0b3c 261 link:RelNotes/1.7.5.3.txt[1.7.5.3],
3d5ae435 262 link:RelNotes/1.7.5.2.txt[1.7.5.2],
2f312e88 263 link:RelNotes/1.7.5.1.txt[1.7.5.1],
ec014eac
JH
264 link:RelNotes/1.7.5.txt[1.7.5].
265
6ceb270c 266* link:v1.7.4.5/git.html[documentation for release 1.7.4.5]
7ed863a8
JH
267
268* release notes for
6ceb270c 269 link:RelNotes/1.7.4.5.txt[1.7.4.5],
6be05591 270 link:RelNotes/1.7.4.4.txt[1.7.4.4],
cb35c064
JH
271 link:RelNotes/1.7.4.3.txt[1.7.4.3],
272 link:RelNotes/1.7.4.2.txt[1.7.4.2],
9971d6d5 273 link:RelNotes/1.7.4.1.txt[1.7.4.1],
7ed863a8
JH
274 link:RelNotes/1.7.4.txt[1.7.4].
275
685e9d91 276* link:v1.7.3.5/git.html[documentation for release 1.7.3.5]
87b50542
JH
277
278* release notes for
685e9d91 279 link:RelNotes/1.7.3.5.txt[1.7.3.5],
15368e18 280 link:RelNotes/1.7.3.4.txt[1.7.3.4],
ed94cc76 281 link:RelNotes/1.7.3.3.txt[1.7.3.3],
8a904385 282 link:RelNotes/1.7.3.2.txt[1.7.3.2],
92c1e717 283 link:RelNotes/1.7.3.1.txt[1.7.3.1],
87b50542
JH
284 link:RelNotes/1.7.3.txt[1.7.3].
285
1b974346 286* link:v1.7.2.5/git.html[documentation for release 1.7.2.5]
64fdc08d
JH
287
288* release notes for
1b974346 289 link:RelNotes/1.7.2.5.txt[1.7.2.5],
ed94cc76 290 link:RelNotes/1.7.2.4.txt[1.7.2.4],
761e742d
NP
291 link:RelNotes/1.7.2.3.txt[1.7.2.3],
292 link:RelNotes/1.7.2.2.txt[1.7.2.2],
293 link:RelNotes/1.7.2.1.txt[1.7.2.1],
294 link:RelNotes/1.7.2.txt[1.7.2].
64fdc08d 295
1b974346 296* link:v1.7.1.4/git.html[documentation for release 1.7.1.4]
d599e048
JH
297
298* release notes for
1b974346 299 link:RelNotes/1.7.1.4.txt[1.7.1.4],
ed94cc76 300 link:RelNotes/1.7.1.3.txt[1.7.1.3],
761e742d
NP
301 link:RelNotes/1.7.1.2.txt[1.7.1.2],
302 link:RelNotes/1.7.1.1.txt[1.7.1.1],
303 link:RelNotes/1.7.1.txt[1.7.1].
d599e048 304
1b974346 305* link:v1.7.0.9/git.html[documentation for release 1.7.0.9]
e923eaeb
JH
306
307* release notes for
1b974346 308 link:RelNotes/1.7.0.9.txt[1.7.0.9],
ed94cc76 309 link:RelNotes/1.7.0.8.txt[1.7.0.8],
761e742d
NP
310 link:RelNotes/1.7.0.7.txt[1.7.0.7],
311 link:RelNotes/1.7.0.6.txt[1.7.0.6],
312 link:RelNotes/1.7.0.5.txt[1.7.0.5],
313 link:RelNotes/1.7.0.4.txt[1.7.0.4],
314 link:RelNotes/1.7.0.3.txt[1.7.0.3],
315 link:RelNotes/1.7.0.2.txt[1.7.0.2],
316 link:RelNotes/1.7.0.1.txt[1.7.0.1],
317 link:RelNotes/1.7.0.txt[1.7.0].
e923eaeb 318
1b974346 319* link:v1.6.6.3/git.html[documentation for release 1.6.6.3]
902f2353
JH
320
321* release notes for
1b974346 322 link:RelNotes/1.6.6.3.txt[1.6.6.3],
761e742d
NP
323 link:RelNotes/1.6.6.2.txt[1.6.6.2],
324 link:RelNotes/1.6.6.1.txt[1.6.6.1],
325 link:RelNotes/1.6.6.txt[1.6.6].
902f2353 326
1b974346 327* link:v1.6.5.9/git.html[documentation for release 1.6.5.9]
78d553b7
JH
328
329* release notes for
1b974346 330 link:RelNotes/1.6.5.9.txt[1.6.5.9],
761e742d
NP
331 link:RelNotes/1.6.5.8.txt[1.6.5.8],
332 link:RelNotes/1.6.5.7.txt[1.6.5.7],
333 link:RelNotes/1.6.5.6.txt[1.6.5.6],
334 link:RelNotes/1.6.5.5.txt[1.6.5.5],
335 link:RelNotes/1.6.5.4.txt[1.6.5.4],
336 link:RelNotes/1.6.5.3.txt[1.6.5.3],
337 link:RelNotes/1.6.5.2.txt[1.6.5.2],
338 link:RelNotes/1.6.5.1.txt[1.6.5.1],
339 link:RelNotes/1.6.5.txt[1.6.5].
78d553b7 340
1b974346 341* link:v1.6.4.5/git.html[documentation for release 1.6.4.5]
0a53e9dd
JH
342
343* release notes for
1b974346 344 link:RelNotes/1.6.4.5.txt[1.6.4.5],
761e742d
NP
345 link:RelNotes/1.6.4.4.txt[1.6.4.4],
346 link:RelNotes/1.6.4.3.txt[1.6.4.3],
347 link:RelNotes/1.6.4.2.txt[1.6.4.2],
348 link:RelNotes/1.6.4.1.txt[1.6.4.1],
349 link:RelNotes/1.6.4.txt[1.6.4].
0a53e9dd 350
441b40d8 351* link:v1.6.3.4/git.html[documentation for release 1.6.3.4]
6096d759
JH
352
353* release notes for
761e742d
NP
354 link:RelNotes/1.6.3.4.txt[1.6.3.4],
355 link:RelNotes/1.6.3.3.txt[1.6.3.3],
356 link:RelNotes/1.6.3.2.txt[1.6.3.2],
357 link:RelNotes/1.6.3.1.txt[1.6.3.1],
358 link:RelNotes/1.6.3.txt[1.6.3].
a95148de
JH
359
360* release notes for
761e742d
NP
361 link:RelNotes/1.6.2.5.txt[1.6.2.5],
362 link:RelNotes/1.6.2.4.txt[1.6.2.4],
363 link:RelNotes/1.6.2.3.txt[1.6.2.3],
364 link:RelNotes/1.6.2.2.txt[1.6.2.2],
365 link:RelNotes/1.6.2.1.txt[1.6.2.1],
366 link:RelNotes/1.6.2.txt[1.6.2].
a95148de 367
621f1b4b 368* link:v1.6.1.3/git.html[documentation for release 1.6.1.3]
8104ebfe
JH
369
370* release notes for
761e742d
NP
371 link:RelNotes/1.6.1.3.txt[1.6.1.3],
372 link:RelNotes/1.6.1.2.txt[1.6.1.2],
373 link:RelNotes/1.6.1.1.txt[1.6.1.1],
374 link:RelNotes/1.6.1.txt[1.6.1].
8104ebfe 375
efe05b01 376* link:v1.6.0.6/git.html[documentation for release 1.6.0.6]
ea02eef0
JH
377
378* release notes for
761e742d
NP
379 link:RelNotes/1.6.0.6.txt[1.6.0.6],
380 link:RelNotes/1.6.0.5.txt[1.6.0.5],
381 link:RelNotes/1.6.0.4.txt[1.6.0.4],
382 link:RelNotes/1.6.0.3.txt[1.6.0.3],
383 link:RelNotes/1.6.0.2.txt[1.6.0.2],
384 link:RelNotes/1.6.0.1.txt[1.6.0.1],
385 link:RelNotes/1.6.0.txt[1.6.0].
ea02eef0 386
efe05b01 387* link:v1.5.6.6/git.html[documentation for release 1.5.6.6]
e449f105
JH
388
389* release notes for
761e742d
NP
390 link:RelNotes/1.5.6.6.txt[1.5.6.6],
391 link:RelNotes/1.5.6.5.txt[1.5.6.5],
392 link:RelNotes/1.5.6.4.txt[1.5.6.4],
393 link:RelNotes/1.5.6.3.txt[1.5.6.3],
394 link:RelNotes/1.5.6.2.txt[1.5.6.2],
395 link:RelNotes/1.5.6.1.txt[1.5.6.1],
396 link:RelNotes/1.5.6.txt[1.5.6].
e449f105 397
efe05b01 398* link:v1.5.5.6/git.html[documentation for release 1.5.5.6]
1d2375dd
JH
399
400* release notes for
761e742d
NP
401 link:RelNotes/1.5.5.6.txt[1.5.5.6],
402 link:RelNotes/1.5.5.5.txt[1.5.5.5],
403 link:RelNotes/1.5.5.4.txt[1.5.5.4],
404 link:RelNotes/1.5.5.3.txt[1.5.5.3],
405 link:RelNotes/1.5.5.2.txt[1.5.5.2],
406 link:RelNotes/1.5.5.1.txt[1.5.5.1],
407 link:RelNotes/1.5.5.txt[1.5.5].
1d2375dd 408
efe05b01 409* link:v1.5.4.7/git.html[documentation for release 1.5.4.7]
6ce8e44a
JH
410
411* release notes for
761e742d
NP
412 link:RelNotes/1.5.4.7.txt[1.5.4.7],
413 link:RelNotes/1.5.4.6.txt[1.5.4.6],
414 link:RelNotes/1.5.4.5.txt[1.5.4.5],
415 link:RelNotes/1.5.4.4.txt[1.5.4.4],
416 link:RelNotes/1.5.4.3.txt[1.5.4.3],
417 link:RelNotes/1.5.4.2.txt[1.5.4.2],
418 link:RelNotes/1.5.4.1.txt[1.5.4.1],
419 link:RelNotes/1.5.4.txt[1.5.4].
6ce8e44a 420
e708af6e 421* link:v1.5.3.8/git.html[documentation for release 1.5.3.8]
5587cac2
JH
422
423* release notes for
761e742d
NP
424 link:RelNotes/1.5.3.8.txt[1.5.3.8],
425 link:RelNotes/1.5.3.7.txt[1.5.3.7],
426 link:RelNotes/1.5.3.6.txt[1.5.3.6],
427 link:RelNotes/1.5.3.5.txt[1.5.3.5],
428 link:RelNotes/1.5.3.4.txt[1.5.3.4],
429 link:RelNotes/1.5.3.3.txt[1.5.3.3],
430 link:RelNotes/1.5.3.2.txt[1.5.3.2],
431 link:RelNotes/1.5.3.1.txt[1.5.3.1],
432 link:RelNotes/1.5.3.txt[1.5.3].
b6e4db6a 433
e636106c
JH
434* link:v1.5.2.5/git.html[documentation for release 1.5.2.5]
435
aba170cd 436* release notes for
761e742d
NP
437 link:RelNotes/1.5.2.5.txt[1.5.2.5],
438 link:RelNotes/1.5.2.4.txt[1.5.2.4],
439 link:RelNotes/1.5.2.3.txt[1.5.2.3],
440 link:RelNotes/1.5.2.2.txt[1.5.2.2],
441 link:RelNotes/1.5.2.1.txt[1.5.2.1],
442 link:RelNotes/1.5.2.txt[1.5.2].
aba170cd
JH
443
444* link:v1.5.1.6/git.html[documentation for release 1.5.1.6]
445
446* release notes for
761e742d
NP
447 link:RelNotes/1.5.1.6.txt[1.5.1.6],
448 link:RelNotes/1.5.1.5.txt[1.5.1.5],
449 link:RelNotes/1.5.1.4.txt[1.5.1.4],
450 link:RelNotes/1.5.1.3.txt[1.5.1.3],
451 link:RelNotes/1.5.1.2.txt[1.5.1.2],
452 link:RelNotes/1.5.1.1.txt[1.5.1.1],
453 link:RelNotes/1.5.1.txt[1.5.1].
2ff3f61a
JH
454
455* link:v1.5.0.7/git.html[documentation for release 1.5.0.7]
456
aba170cd 457* release notes for
761e742d
NP
458 link:RelNotes/1.5.0.7.txt[1.5.0.7],
459 link:RelNotes/1.5.0.6.txt[1.5.0.6],
460 link:RelNotes/1.5.0.5.txt[1.5.0.5],
461 link:RelNotes/1.5.0.3.txt[1.5.0.3],
462 link:RelNotes/1.5.0.2.txt[1.5.0.2],
463 link:RelNotes/1.5.0.1.txt[1.5.0.1],
464 link:RelNotes/1.5.0.txt[1.5.0].
2ff3f61a
JH
465
466* documentation for release link:v1.4.4.4/git.html[1.4.4.4],
467 link:v1.3.3/git.html[1.3.3],
468 link:v1.2.6/git.html[1.2.6],
469 link:v1.0.13/git.html[1.0.13].
26cfcfbf
JH
470
471============
472
473endif::stalenotes[]
474
cb22bc44
AE
475OPTIONS
476-------
477--version::
2de9b711 478 Prints the Git suite version that the 'git' program came from.
cb22bc44
AE
479
480--help::
a87cd02c 481 Prints the synopsis and a list of the most commonly used
0f6f195b 482 commands. If the option '--all' or '-a' is given then all
2de9b711 483 available commands are printed. If a Git command is named this
0f6f195b 484 option will bring up the manual page for that command.
45533d26
CC
485+
486Other options are available to control how the manual page is
5162e697 487displayed. See linkgit:git-help[1] for more information,
db5d6666
JN
488because `git --help ...` is converted internally into `git
489help ...`.
cb22bc44 490
44e1e4d6
NR
491-C <path>::
492 Run as if git was started in '<path>' instead of the current working
493 directory. When multiple `-C` options are given, each subsequent
494 non-absolute `-C <path>` is interpreted relative to the preceding `-C
495 <path>`.
496+
497This option affects options that expect path name like `--git-dir` and
498`--work-tree` in that their interpretations of the path names would be
499made relative to the working directory caused by the `-C` option. For
500example the following invocations are equivalent:
501
502 git --git-dir=a.git --work-tree=b -C c status
503 git --git-dir=c/a.git --work-tree=c/b status
504
8b1fa778
AR
505-c <name>=<value>::
506 Pass a configuration parameter to the command. The value
507 given will override values from configuration files.
508 The <name> is expected in the same format as listed by
509 'git config' (subkeys separated by dots).
a789ca70
JH
510+
511Note that omitting the `=` in `git -c foo.bar ...` is allowed and sets
512`foo.bar` to the boolean true value (just like `[foo]bar` would in a
513config file). Including the equals but with an empty value (like `git -c
514foo.bar= ...`) sets `foo.bar` to the empty string.
8b1fa778 515
62b4698e 516--exec-path[=<path>]::
2de9b711 517 Path to wherever your core Git programs are installed.
cb22bc44 518 This can also be controlled by setting the GIT_EXEC_PATH
56992f76 519 environment variable. If no path is given, 'git' will print
cb22bc44
AE
520 the current setting and then exit.
521
89a56bfb 522--html-path::
2de9b711 523 Print the path, without trailing slash, where Git's HTML
239b5ed9 524 documentation is installed and exit.
89a56bfb 525
f2dd8c37 526--man-path::
239b5ed9 527 Print the manpath (see `man(1)`) for the man pages for
2de9b711 528 this version of Git and exit.
f2dd8c37
JS
529
530--info-path::
239b5ed9 531 Print the path where the Info files documenting this
2de9b711 532 version of Git are installed and exit.
89a56bfb 533
3240240f
SB
534-p::
535--paginate::
06300d97
JN
536 Pipe all output into 'less' (or if set, $PAGER) if standard
537 output is a terminal. This overrides the `pager.<cmd>`
538 configuration options (see the "Configuration Mechanism" section
539 below).
6acbcb92 540
463a849d 541--no-pager::
2de9b711 542 Do not pipe Git output into a pager.
463a849d 543
6acbcb92
JS
544--git-dir=<path>::
545 Set the path to the repository. This can also be controlled by
302cc11a
LY
546 setting the GIT_DIR environment variable. It can be an absolute
547 path or relative path to current working directory.
6acbcb92 548
892c41b9 549--work-tree=<path>::
ea472c1e
JH
550 Set the path to the working tree. It can be an absolute path
551 or a path relative to the current working directory.
892c41b9
ML
552 This can also be controlled by setting the GIT_WORK_TREE
553 environment variable and the core.worktree configuration
ea472c1e
JH
554 variable (see core.worktree in linkgit:git-config[1] for a
555 more detailed discussion).
892c41b9 556
d49483f0 557--namespace=<path>::
2de9b711 558 Set the Git namespace. See linkgit:gitnamespaces[7] for more
d49483f0
JT
559 details. Equivalent to setting the `GIT_NAMESPACE` environment
560 variable.
561
6acbcb92 562--bare::
9277d602
JH
563 Treat the repository as a bare repository. If GIT_DIR
564 environment is not set, it is set to the current working
565 directory.
566
b0fa7ab5 567--no-replace-objects::
2de9b711 568 Do not use replacement refs to replace Git objects. See
b0fa7ab5
CC
569 linkgit:git-replace[1] for more information.
570
823ab40f 571--literal-pathspecs::
a16bf9dd
NTND
572 Treat pathspecs literally (i.e. no globbing, no pathspec magic).
573 This is equivalent to setting the `GIT_LITERAL_PATHSPECS` environment
823ab40f
JK
574 variable to `1`.
575
6fb02165 576--glob-pathspecs::
bd30c2e4
NTND
577 Add "glob" magic to all pathspec. This is equivalent to setting
578 the `GIT_GLOB_PATHSPECS` environment variable to `1`. Disabling
579 globbing on individual pathspecs can be done using pathspec
580 magic ":(literal)"
581
6fb02165 582--noglob-pathspecs::
bd30c2e4
NTND
583 Add "literal" magic to all pathspec. This is equivalent to setting
584 the `GIT_NOGLOB_PATHSPECS` environment variable to `1`. Enabling
585 globbing on individual pathspecs can be done using pathspec
586 magic ":(glob)"
9755afbd 587
6fb02165 588--icase-pathspecs::
93d93537
NTND
589 Add "icase" magic to all pathspec. This is equivalent to setting
590 the `GIT_ICASE_PATHSPECS` environment variable to `1`.
9755afbd 591
23091e95
BF
592GIT COMMANDS
593------------
9755afbd 594
2de9b711 595We divide Git into high level ("porcelain") commands and low level
23091e95 596("plumbing") commands.
8b15e2fb 597
23091e95
BF
598High-level commands (porcelain)
599-------------------------------
600
601We separate the porcelain commands into the main commands and some
602ancillary user utilities.
603
604Main porcelain commands
605~~~~~~~~~~~~~~~~~~~~~~~
905197de 606
377e8139 607include::cmds-mainporcelain.txt[]
e31bb3bb 608
90933efb 609Ancillary Commands
23091e95 610~~~~~~~~~~~~~~~~~~
2f2de9b4
JH
611Manipulators:
612
377e8139 613include::cmds-ancillarymanipulators.txt[]
204ee6a9 614
90933efb 615Interrogators:
204ee6a9 616
377e8139 617include::cmds-ancillaryinterrogators.txt[]
7fc9d69f 618
89bf2077
JH
619
620Interacting with Others
621~~~~~~~~~~~~~~~~~~~~~~~
622
623These commands are to interact with foreign SCM and with other
624people via patch over e-mail.
625
626include::cmds-foreignscminterface.txt[]
627
628
b1f33d62
RR
629Low-level commands (plumbing)
630-----------------------------
631
2de9b711 632Although Git includes its
b1f33d62
RR
633own porcelain layer, its low-level commands are sufficient to support
634development of alternative porcelains. Developers of such porcelains
5162e697
DM
635might start by reading about linkgit:git-update-index[1] and
636linkgit:git-read-tree[1].
b1f33d62 637
89bf2077
JH
638The interface (input, output, set of options and the semantics)
639to these low-level commands are meant to be a lot more stable
640than Porcelain level commands, because these commands are
641primarily for scripted use. The interface to Porcelain commands
642on the other hand are subject to change in order to improve the
643end user experience.
644
645The following description divides
646the low-level commands into commands that manipulate objects (in
b1f33d62
RR
647the repository, index, and working tree), commands that interrogate and
648compare objects, and commands that move objects and references between
649repositories.
650
89bf2077 651
b1f33d62
RR
652Manipulation commands
653~~~~~~~~~~~~~~~~~~~~~
b1f33d62 654
377e8139 655include::cmds-plumbingmanipulators.txt[]
b1f33d62
RR
656
657
658Interrogation commands
659~~~~~~~~~~~~~~~~~~~~~~
660
377e8139 661include::cmds-plumbinginterrogators.txt[]
b1f33d62
RR
662
663In general, the interrogate commands do not touch the files in
664the working tree.
665
666
667Synching repositories
668~~~~~~~~~~~~~~~~~~~~~
669
377e8139 670include::cmds-synchingrepositories.txt[]
b1f33d62 671
57f6ec02 672The following are helper commands used by the above; end users
89bf2077
JH
673typically do not use them directly.
674
675include::cmds-synchelpers.txt[]
676
677
678Internal helper commands
679~~~~~~~~~~~~~~~~~~~~~~~~
680
681These are internal helper commands used by other commands; end
682users typically do not use them directly.
683
684include::cmds-purehelpers.txt[]
685
b1f33d62 686
5773c9f2
JH
687Configuration Mechanism
688-----------------------
689
c0179c0d
MM
690Git uses a simple text format to store customizations that are per
691repository and are per user. Such a configuration file may look
692like this:
5773c9f2
JH
693
694------------
695#
2fa090b6 696# A '#' or ';' character indicates a comment.
5773c9f2
JH
697#
698
699; core variables
700[core]
701 ; Don't trust file modes
702 filemode = false
703
704; user identity
705[user]
706 name = "Junio C Hamano"
c0179c0d 707 email = "gitster@pobox.com"
5773c9f2
JH
708
709------------
710
711Various commands read from the configuration file and adjust
06300d97 712their operation accordingly. See linkgit:git-config[1] for a
c0179c0d 713list and more details about the configuration mechanism.
5773c9f2
JH
714
715
6c84e2e0 716Identifier Terminology
2cf565c5
DG
717----------------------
718<object>::
2fa090b6 719 Indicates the object name for any type of object.
2cf565c5
DG
720
721<blob>::
2fa090b6 722 Indicates a blob object name.
2cf565c5
DG
723
724<tree>::
2fa090b6 725 Indicates a tree object name.
2cf565c5
DG
726
727<commit>::
2fa090b6 728 Indicates a commit object name.
2cf565c5
DG
729
730<tree-ish>::
2fa090b6 731 Indicates a tree, commit or tag object name. A
6c84e2e0
DG
732 command that takes a <tree-ish> argument ultimately wants to
733 operate on a <tree> object but automatically dereferences
734 <commit> and <tag> objects that point at a <tree>.
2cf565c5 735
043d7605
TT
736<commit-ish>::
737 Indicates a commit or tag object name. A
738 command that takes a <commit-ish> argument ultimately wants to
739 operate on a <commit> object but automatically dereferences
740 <tag> objects that point at a <commit>.
741
2cf565c5
DG
742<type>::
743 Indicates that an object type is required.
2fa090b6 744 Currently one of: `blob`, `tree`, `commit`, or `tag`.
2cf565c5
DG
745
746<file>::
2fa090b6
JH
747 Indicates a filename - almost always relative to the
748 root of the tree structure `GIT_INDEX_FILE` describes.
2cf565c5 749
c1bdacf9
DG
750Symbolic Identifiers
751--------------------
2de9b711 752Any Git command accepting any <object> can also use the following
6c84e2e0 753symbolic notation:
c1bdacf9
DG
754
755HEAD::
0abcfbff 756 indicates the head of the current branch.
2fa090b6 757
c1bdacf9 758<tag>::
2fa090b6 759 a valid tag 'name'
0abcfbff 760 (i.e. a `refs/tags/<tag>` reference).
2fa090b6 761
c1bdacf9 762<head>::
2fa090b6 763 a valid head 'name'
0abcfbff 764 (i.e. a `refs/heads/<head>` reference).
2fa090b6 765
d47107d8 766For a more complete list of ways to spell object names, see
9d83e382 767"SPECIFYING REVISIONS" section in linkgit:gitrevisions[7].
d47107d8 768
c1bdacf9
DG
769
770File/Directory Structure
771------------------------
c1bdacf9 772
6998e4db 773Please see the linkgit:gitrepository-layout[5] document.
c1bdacf9 774
6998e4db 775Read linkgit:githooks[5] for more details about each hook.
6250ad1e 776
c1bdacf9 777Higher level SCMs may provide and manage additional information in the
2fa090b6 778`$GIT_DIR`.
c1bdacf9 779
a1d4aa74 780
2cf565c5
DG
781Terminology
782-----------
6998e4db 783Please see linkgit:gitglossary[7].
2cf565c5
DG
784
785
786Environment Variables
787---------------------
2de9b711 788Various Git commands use the following environment variables:
2cf565c5 789
2de9b711 790The Git Repository
c1bdacf9 791~~~~~~~~~~~~~~~~~~
2de9b711 792These environment variables apply to 'all' core Git commands. Nb: it
c1bdacf9 793is worth noting that they may be used/overridden by SCMS sitting above
f25b98e6 794Git so take care if using a foreign front-end.
c1bdacf9
DG
795
796'GIT_INDEX_FILE'::
797 This environment allows the specification of an alternate
5f3aa197
LS
798 index file. If not specified, the default of `$GIT_DIR/index`
799 is used.
c1bdacf9 800
136347d7
TG
801'GIT_INDEX_VERSION'::
802 This environment variable allows the specification of an index
803 version for new repositories. It won't affect existing index
70320541
NTND
804 files. By default index file version 2 or 3 is used. See
805 linkgit:git-update-index[1] for more information.
136347d7 806
c1bdacf9
DG
807'GIT_OBJECT_DIRECTORY'::
808 If the object storage directory is specified via this
809 environment variable then the sha1 directories are created
810 underneath - otherwise the default `$GIT_DIR/objects`
811 directory is used.
812
813'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
2de9b711 814 Due to the immutable nature of Git objects, old objects can be
c1bdacf9 815 archived into shared, read-only directories. This variable
80ba074f 816 specifies a ":" separated (on Windows ";" separated) list
2de9b711 817 of Git object directories which can be used to search for Git
80ba074f 818 objects. New objects will not be written to these directories.
c1bdacf9
DG
819
820'GIT_DIR'::
2fa090b6
JH
821 If the 'GIT_DIR' environment variable is set then it
822 specifies a path to use instead of the default `.git`
823 for the base of the repository.
75940a00 824 The '--git-dir' command-line option also sets this value.
c1bdacf9 825
892c41b9 826'GIT_WORK_TREE'::
a758a349 827 Set the path to the root of the working tree.
06ab60c0 828 This can also be controlled by the '--work-tree' command-line
892c41b9
ML
829 option and the core.worktree configuration variable.
830
d49483f0 831'GIT_NAMESPACE'::
2de9b711 832 Set the Git namespace; see linkgit:gitnamespaces[7] for details.
d49483f0
JT
833 The '--namespace' command-line option also sets this value.
834
0454dd93 835'GIT_CEILING_DIRECTORIES'::
7ec30aaa 836 This should be a colon-separated list of absolute paths. If
3e07d268 837 set, it is a list of directories that Git should not chdir up
7ec30aaa
MH
838 into while looking for a repository directory (useful for
839 excluding slow-loading network directories). It will not
840 exclude the current working directory or a GIT_DIR set on the
841 command line or in the environment. Normally, Git has to read
842 the entries in this list and resolve any symlink that
843 might be present in order to compare them with the current
844 directory. However, if even this access is slow, you
845 can add an empty entry to the list to tell Git that the
846 subsequent entries are not symlinks and needn't be resolved;
847 e.g.,
848 'GIT_CEILING_DIRECTORIES=/maybe/symlink::/very/slow/non/symlink'.
0454dd93 849
cf87463e 850'GIT_DISCOVERY_ACROSS_FILESYSTEM'::
e6405517 851 When run in a directory that does not have ".git" repository
2de9b711 852 directory, Git tries to find such a directory in the parent
e6405517
JH
853 directories to find the top of the working tree, but by default it
854 does not cross filesystem boundaries. This environment variable
2de9b711 855 can be set to true to tell Git not to stop at filesystem
cf87463e
JH
856 boundaries. Like 'GIT_CEILING_DIRECTORIES', this will not affect
857 an explicit repository directory set via 'GIT_DIR' or on the
858 command line.
8030e442 859
c7b3a3d2
NTND
860'GIT_COMMON_DIR'::
861 If this variable is set to a path, non-worktree files that are
862 normally in $GIT_DIR will be taken from this path
863 instead. Worktree-specific files such as HEAD or index are
529fef20 864 taken from $GIT_DIR. See linkgit:gitrepository-layout[5] and
1eaca7a5 865 linkgit:git-worktree[1] for
c7b3a3d2
NTND
866 details. This variable has lower precedence than other path
867 variables such as GIT_INDEX_FILE, GIT_OBJECT_DIRECTORY...
868
2de9b711 869Git Commits
c1bdacf9
DG
870~~~~~~~~~~~
871'GIT_AUTHOR_NAME'::
872'GIT_AUTHOR_EMAIL'::
873'GIT_AUTHOR_DATE'::
874'GIT_COMMITTER_NAME'::
875'GIT_COMMITTER_EMAIL'::
4e58bf97 876'GIT_COMMITTER_DATE'::
28a94f88 877'EMAIL'::
5162e697 878 see linkgit:git-commit-tree[1]
c1bdacf9 879
2de9b711 880Git Diffs
c1bdacf9 881~~~~~~~~~
d81ed1b5 882'GIT_DIFF_OPTS'::
fde97d8a
SE
883 Only valid setting is "--unified=??" or "-u??" to set the
884 number of context lines shown when a unified diff is created.
885 This takes precedence over any "-U" or "--unified" option
2de9b711 886 value passed on the Git diff command line.
fde97d8a 887
d81ed1b5 888'GIT_EXTERNAL_DIFF'::
fde97d8a
SE
889 When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
890 program named by it is called, instead of the diff invocation
891 described above. For a path that is added, removed, or modified,
892 'GIT_EXTERNAL_DIFF' is called with 7 parameters:
893
894 path old-file old-hex old-mode new-file new-hex new-mode
895+
896where:
897
898 <old|new>-file:: are files GIT_EXTERNAL_DIFF can use to read the
899 contents of <old|new>,
d5fa1f1a 900 <old|new>-hex:: are the 40-hexdigit SHA-1 hashes,
fde97d8a 901 <old|new>-mode:: are the octal representation of the file modes.
fde97d8a
SE
902+
903The file parameters can point at the user's working file
904(e.g. `new-file` in "git-diff-files"), `/dev/null` (e.g. `old-file`
905when a new file is added), or a temporary file (e.g. `old-file` in the
906index). 'GIT_EXTERNAL_DIFF' should not worry about unlinking the
907temporary file --- it is removed when 'GIT_EXTERNAL_DIFF' exits.
908+
909For a path that is unmerged, 'GIT_EXTERNAL_DIFF' is called with 1
910parameter, <path>.
ee7fb0b1
ZK
911+
912For each path 'GIT_EXTERNAL_DIFF' is called, two environment variables,
913'GIT_DIFF_PATH_COUNTER' and 'GIT_DIFF_PATH_TOTAL' are set.
914
915'GIT_DIFF_PATH_COUNTER'::
916 A 1-based counter incremented by one for every path.
917
918'GIT_DIFF_PATH_TOTAL'::
919 The total number of paths.
2cf565c5 920
575ba9d6
ML
921other
922~~~~~
dbddb714
JN
923'GIT_MERGE_VERBOSITY'::
924 A number controlling the amount of output shown by
925 the recursive merge strategy. Overrides merge.verbosity.
5162e697 926 See linkgit:git-merge[1]
dbddb714 927
c27d205a 928'GIT_PAGER'::
a7738c77 929 This environment variable overrides `$PAGER`. If it is set
2de9b711 930 to an empty string or to the value "cat", Git will not launch
ab54cd6c
JN
931 a pager. See also the `core.pager` option in
932 linkgit:git-config[1].
c27d205a 933
36384c97
RSM
934'GIT_EDITOR'::
935 This environment variable overrides `$EDITOR` and `$VISUAL`.
2de9b711 936 It is used by several Git commands when, on interactive mode,
36384c97
RSM
937 an editor is to be launched. See also linkgit:git-var[1]
938 and the `core.editor` option in linkgit:git-config[1].
939
d5538b41 940'GIT_SSH'::
39942766
TQ
941'GIT_SSH_COMMAND'::
942 If either of these environment variables is set then 'git fetch'
943 and 'git push' will use the specified command instead of 'ssh'
944 when they need to connect to a remote system.
945 The command will be given exactly two or four arguments: the
946 'username@host' (or just 'host') from the URL and the shell
947 command to execute on that remote system, optionally preceded by
948 '-p' (literally) and the 'port' from the URL when it specifies
949 something other than the default SSH port.
d5538b41 950+
39942766
TQ
951`$GIT_SSH_COMMAND` takes precedence over `$GIT_SSH`, and is interpreted
952by the shell, which allows additional arguments to be included.
953`$GIT_SSH` on the other hand must be just the path to a program
954(which can be a wrapper shell script, if additional arguments are
955needed).
d5538b41
SP
956+
957Usually it is easier to configure any desired options through your
958personal `.ssh/config` file. Please consult your ssh documentation
959for further details.
960
453842c9 961'GIT_ASKPASS'::
2de9b711 962 If this environment variable is set, then Git commands which need to
453842c9 963 acquire passwords or passphrases (e.g. for HTTP or IMAP authentication)
06ab60c0 964 will call this program with a suitable prompt as command-line argument
da0005b8 965 and read the password from its STDOUT. See also the 'core.askPass'
453842c9
KF
966 option in linkgit:git-config[1].
967
e652c0eb
JK
968'GIT_TERMINAL_PROMPT'::
969 If this environment variable is set to `0`, git will not prompt
970 on the terminal (e.g., when asking for HTTP authentication).
971
e8ef401c
JN
972'GIT_CONFIG_NOSYSTEM'::
973 Whether to skip reading settings from the system-wide
974 `$(prefix)/etc/gitconfig` file. This environment variable can
975 be used along with `$HOME` and `$XDG_CONFIG_HOME` to create a
976 predictable environment for a picky script, or you can set it
977 temporarily to avoid using a buggy `/etc/gitconfig` file while
978 waiting for someone with sufficient permissions to fix it.
979
06f59e9f
TT
980'GIT_FLUSH'::
981 If this environment variable is set to "1", then commands such
0b444cdb 982 as 'git blame' (in incremental mode), 'git rev-list', 'git log',
627a8b8d 983 'git check-attr' and 'git check-ignore' will
f1ed7fea
AS
984 force a flush of the output stream after each record have been
985 flushed. If this
06f59e9f
TT
986 variable is set to "0", the output of these commands will be done
987 using completely buffered I/O. If this environment variable is
2de9b711 988 not set, Git will choose buffered or record-oriented flushing
06f59e9f
TT
989 based on whether stdout appears to be redirected to a file or not.
990
575ba9d6 991'GIT_TRACE'::
eb9250df
KB
992 Enables general trace messages, e.g. alias expansion, built-in
993 command execution and external command execution.
994+
995If this variable is set to "1", "2" or "true" (comparison
996is case insensitive), trace messages will be printed to
997stderr.
998+
999If the variable is set to an integer value greater than 2
1000and lower than 10 (strictly) then Git will interpret this
1001value as an open file descriptor and will try to write the
1002trace messages into this file descriptor.
1003+
1004Alternatively, if the variable is set to an absolute path
1005(starting with a '/' character), Git will interpret this
1006as a file path and will try to write the trace messages
1007into it.
1008+
1009Unsetting the variable, or setting it to empty, "0" or
1010"false" (case insensitive) disables trace messages.
575ba9d6 1011
b12ca963 1012'GIT_TRACE_PACK_ACCESS'::
67dc598e 1013 Enables trace messages for all accesses to any packs. For each
b12ca963
NTND
1014 access, the pack file name and an offset in the pack is
1015 recorded. This may be helpful for troubleshooting some
1016 pack-related performance problems.
67dc598e 1017 See 'GIT_TRACE' for available trace output options.
b12ca963 1018
1dd278ce 1019'GIT_TRACE_PACKET'::
eb9250df
KB
1020 Enables trace messages for all packets coming in or out of a
1021 given program. This can help with debugging object negotiation
1022 or other protocol issues. Tracing is turned off at a packet
1023 starting with "PACK".
1024 See 'GIT_TRACE' for available trace output options.
1025
578da039
KB
1026'GIT_TRACE_PERFORMANCE'::
1027 Enables performance related trace messages, e.g. total execution
1028 time of each Git command.
1029 See 'GIT_TRACE' for available trace output options.
1030
eb9250df
KB
1031'GIT_TRACE_SETUP'::
1032 Enables trace messages printing the .git, working tree and current
1033 working directory after Git has completed its setup phase.
1034 See 'GIT_TRACE' for available trace output options.
1035
1036'GIT_TRACE_SHALLOW'::
1037 Enables trace messages that can help debugging fetching /
1038 cloning of shallow repositories.
1039 See 'GIT_TRACE' for available trace output options.
1dd278ce 1040
823ab40f 1041GIT_LITERAL_PATHSPECS::
2de9b711 1042 Setting this variable to `1` will cause Git to treat all
823ab40f
JK
1043 pathspecs literally, rather than as glob patterns. For example,
1044 running `GIT_LITERAL_PATHSPECS=1 git log -- '*.c'` will search
1045 for commits that touch the path `*.c`, not any paths that the
1046 glob `*.c` matches. You might want this if you are feeding
2de9b711 1047 literal paths to Git (e.g., paths previously given to you by
823ab40f
JK
1048 `git ls-tree`, `--raw` diff output, etc).
1049
bd30c2e4
NTND
1050GIT_GLOB_PATHSPECS::
1051 Setting this variable to `1` will cause Git to treat all
1052 pathspecs as glob patterns (aka "glob" magic).
1053
1054GIT_NOGLOB_PATHSPECS::
1055 Setting this variable to `1` will cause Git to treat all
1056 pathspecs as literal (aka "literal" magic).
1057
93d93537
NTND
1058GIT_ICASE_PATHSPECS::
1059 Setting this variable to `1` will cause Git to treat all
1060 pathspecs as case-insensitive.
1061
c3e2d189
JH
1062'GIT_REFLOG_ACTION'::
1063 When a ref is updated, reflog entries are created to keep
1064 track of the reason why the ref was updated (which is
1065 typically the name of the high-level command that updated
1066 the ref), in addition to the old and new values of the ref.
1067 A scripted Porcelain command can use set_reflog_action
1068 helper function in `git-sh-setup` to set its name to this
1069 variable when it is invoked as the top level command by the
1070 end user, to be recorded in the body of the reflog.
1071
49672f26
JK
1072`GIT_REF_PARANOIA`::
1073 If set to `1`, include broken or badly named refs when iterating
1074 over lists of refs. In a normal, non-corrupted repository, this
1075 does nothing. However, enabling it may help git to detect and
1076 abort some operations in the presence of broken refs. Git sets
1077 this variable automatically when performing destructive
1078 operations like linkgit:git-prune[1]. You should not need to set
1079 it yourself unless you want to be paranoid about making sure
1080 an operation has touched every ref (e.g., because you are
1081 cloning a repository to make a backup).
1082
a5adaced
JK
1083`GIT_ALLOW_PROTOCOL`::
1084 If set, provide a colon-separated list of protocols which are
1085 allowed to be used with fetch/push/clone. This is useful to
1086 restrict recursive submodule initialization from an untrusted
1087 repository. Any protocol not mentioned will be disallowed (i.e.,
1088 this is a whitelist, not a blacklist). If the variable is not
1089 set at all, all protocols are enabled. The protocol names
1090 currently used by git are:
1091
1092 - `file`: any local file-based path (including `file://` URLs,
1093 or local paths)
1094
1095 - `git`: the anonymous git protocol over a direct TCP
1096 connection (or proxy, if configured)
1097
1098 - `ssh`: git over ssh (including `host:path` syntax,
1099 `git+ssh://`, etc).
1100
1101 - `rsync`: git over rsync
1102
1103 - `http`: git over http, both "smart http" and "dumb http".
1104 Note that this does _not_ include `https`; if you want both,
1105 you should specify both as `http:https`.
1106
1107 - any external helpers are named by their protocol (e.g., use
1108 `hg` to allow the `git-remote-hg` helper)
a5adaced 1109
823ab40f 1110
8db9307c
JH
1111Discussion[[Discussion]]
1112------------------------
40dac517
BF
1113
1114More detail on the following is available from the
2de9b711 1115link:user-manual.html#git-concepts[Git concepts chapter of the
6998e4db 1116user-manual] and linkgit:gitcore-tutorial[7].
40dac517 1117
2de9b711 1118A Git project normally consists of a working directory with a ".git"
40dac517
BF
1119subdirectory at the top level. The .git directory contains, among other
1120things, a compressed object database representing the complete history
1121of the project, an "index" file which links that history to the current
1122contents of the working tree, and named pointers into that history such
1123as tags and branch heads.
1124
1125The object database contains objects of three main types: blobs, which
1126hold file data; trees, which point to blobs and other trees to build up
02ff6250 1127directory hierarchies; and commits, which each reference a single tree
40dac517
BF
1128and some number of parent commits.
1129
1130The commit, equivalent to what other systems call a "changeset" or
1131"version", represents a step in the project's history, and each parent
1132represents an immediately preceding step. Commits with more than one
1133parent represent merges of independent lines of development.
1134
d5fa1f1a 1135All objects are named by the SHA-1 hash of their contents, normally
40dac517
BF
1136written as a string of 40 hex digits. Such names are globally unique.
1137The entire history leading up to a commit can be vouched for by signing
1138just that commit. A fourth object type, the tag, is provided for this
1139purpose.
1140
1141When first created, objects are stored in individual files, but for
1142efficiency may later be compressed together into "pack files".
1143
1144Named pointers called refs mark interesting points in history. A ref
d5fa1f1a
TA
1145may contain the SHA-1 name of an object or the name of another ref. Refs
1146with names beginning `ref/head/` contain the SHA-1 name of the most
1147recent commit (or "head") of a branch under development. SHA-1 names of
40dac517
BF
1148tags of interest are stored under `ref/tags/`. A special ref named
1149`HEAD` contains the name of the currently checked-out branch.
1150
1151The index file is initialized with a list of all paths and, for each
1152path, a blob object and a set of attributes. The blob object represents
1153the contents of the file as of the head of the current branch. The
1154attributes (last modified time, size, etc.) are taken from the
1155corresponding file in the working tree. Subsequent changes to the
1156working tree can be found by comparing these attributes. The index may
1157be updated with new content, and new commits may be created from the
1158content stored in the index.
1159
1160The index is also capable of storing multiple entries (called "stages")
1161for a given pathname. These stages are used to hold the various
1162unmerged version of a file when a merge is in progress.
6c84e2e0 1163
7687ae98
JH
1164FURTHER DOCUMENTATION
1165---------------------
1166
1167See the references in the "description" section to get started
2de9b711 1168using Git. The following is probably more detail than necessary
7687ae98
JH
1169for a first-time user.
1170
2de9b711 1171The link:user-manual.html#git-concepts[Git concepts chapter of the
7687ae98 1172user-manual] and linkgit:gitcore-tutorial[7] both provide
2de9b711 1173introductions to the underlying Git architecture.
7687ae98
JH
1174
1175See linkgit:gitworkflows[7] for an overview of recommended workflows.
1176
1177See also the link:howto-index.html[howto] documents for some useful
1178examples.
1179
1180The internals are documented in the
48a8c26c 1181link:technical/api-index.html[Git API documentation].
7687ae98
JH
1182
1183Users migrating from CVS may also want to
1184read linkgit:gitcvs-migration[7].
1185
1186
cb22bc44
AE
1187Authors
1188-------
48bb914e 1189Git was started by Linus Torvalds, and is currently maintained by Junio
2de9b711 1190C Hamano. Numerous contributions have come from the Git mailing list
405869d0 1191<git@vger.kernel.org>. http://www.openhub.net/p/git/contributors/summary
6ecc01f2
JH
1192gives you a more complete list of contributors.
1193
1194If you have a clone of git.git itself, the
d8f708f8
JK
1195output of linkgit:git-shortlog[1] and linkgit:git-blame[1] can show you
1196the authors for specific parts of the project.
2cf565c5 1197
c97ca277
JH
1198Reporting Bugs
1199--------------
1200
1201Report bugs to the Git mailing list <git@vger.kernel.org> where the
1202development and maintenance is primarily done. You do not have to be
1203subscribed to the list to send a message there.
1204
497c8331
CC
1205SEE ALSO
1206--------
1207linkgit:gittutorial[7], linkgit:gittutorial-2[7],
673151a9 1208linkgit:giteveryday[7], linkgit:gitcvs-migration[7],
497c8331 1209linkgit:gitglossary[7], linkgit:gitcore-tutorial[7],
801a011d
TR
1210linkgit:gitcli[7], link:user-manual.html[The Git User's Manual],
1211linkgit:gitworkflows[7]
497c8331 1212
2cf565c5
DG
1213GIT
1214---
9e1f0a85 1215Part of the linkgit:git[1] suite