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