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