git.txt 14.1 KB
Newer Older
1
git(7)
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
======

NAME
----
git - the stupid content tracker


SYNOPSIS
--------
'git-<command>' <args>

DESCRIPTION
-----------

This is reference information for the core git commands.

18 19 20
Before reading this cover to cover, you may want to take a look
at the link:tutorial.html[tutorial] document.

J
Junio C Hamano 已提交
21
The <<Discussion>> section below contains much useful definition and
22
clarification info - read that first.  And of the commands, I suggest
23 24
reading gitlink:git-update-index[1] and
gitlink:git-read-tree[1] first - I wish I had!
25

J
Junio C Hamano 已提交
26 27 28
If you are migrating from CVS, link:cvs-migration.html[cvs migration]
document may be helpful after you finish the tutorial.

29 30 31 32 33
After you get the general feel from the tutorial and this
overview page, you may want to take a look at the
link:howto-index.html[howto] documents.


34 35 36 37 38 39 40 41 42
David Greaves <david@dgreaves.com>
08/05/05

Updated by Junio C Hamano <junkio@cox.net> on 2005-05-05 to
reflect recent changes.

Commands Overview
-----------------
The git commands can helpfully be split into those that manipulate
43 44 45
the repository, the cache and the working fileset, those that
interrogate and compare them, and those that moves objects and
references between repositories.
46

J
Junio C Hamano 已提交
47 48 49 50
In addition, git itself comes with a spartan set of porcelain
commands.  They are usable but are not meant to compete with real
Porcelains.

51
There are also some ancillary programs that can be viewed as useful
52 53 54
aids for using the core commands but which are unlikely to be used by
SCMs layered over git.

55 56
Manipulation commands
~~~~~~~~~~~~~~~~~~~~~
57
gitlink:git-apply[1]::
58 59 60
	Reads a "diff -up1" or git generated patch file and
	applies it to the working tree.

61
gitlink:git-checkout-index[1]::
62
	Copy files from the cache to the working directory
J
Junio C Hamano 已提交
63
	Previously this command was known as git-checkout-cache.
64

65
gitlink:git-commit-tree[1]::
66 67
	Creates a new commit object

68
gitlink:git-hash-object[1]::
69 70
	Computes the object ID from a file.

S
Sergey Vlasov 已提交
71 72 73
gitlink:git-index-pack.html[1]::
	Build pack index file for an existing packed archive.

74
gitlink:git-init-db[1]::
75 76
	Creates an empty git object database

77
gitlink:git-merge-index[1]::
78
	Runs a merge for files needing merging
J
Junio C Hamano 已提交
79
	Previously this command was known as git-merge-cache.
80

81
gitlink:git-mktag[1]::
82 83
	Creates a tag object

84
gitlink:git-pack-objects[1]::
85 86
	Creates a packed archive of objects.

87
gitlink:git-prune-packed[1]::
88 89
	Remove extra objects that are already in pack files.

90
gitlink:git-read-tree[1]::
91 92
	Reads tree information into the directory cache

93
gitlink:git-unpack-objects[1]::
94 95
	Unpacks objects out of a packed archive.

96
gitlink:git-update-index[1]::
97
	Modifies the index or directory cache
J
Junio C Hamano 已提交
98
	Previously this command was known as git-update-cache.
99

100
gitlink:git-write-tree[1]::
101 102
	Creates a tree from the current cache

103

104 105
Interrogation commands
~~~~~~~~~~~~~~~~~~~~~~
106

107
gitlink:git-cat-file[1]::
108 109
	Provide content or type information for repository objects

110
gitlink:git-diff-index[1]::
111
	Compares content and mode of blobs between the cache and repository
J
Junio C Hamano 已提交
112
	Previously this command was known as git-diff-cache.
113

114
gitlink:git-diff-files[1]::
115 116
	Compares files in the working tree and the cache

117
gitlink:git-diff-stages[1]::
118 119
	Compares two "merge stages" in the index file.

120
gitlink:git-diff-tree[1]::
121 122
	Compares the content and mode of blobs found via two tree objects

123
gitlink:git-fsck-objects[1]::
124
	Verifies the connectivity and validity of the objects in the database
J
Junio C Hamano 已提交
125
	Previously this command was known as git-fsck-cache.
126

127
gitlink:git-ls-files[1]::
128 129
	Information about files in the cache/working directory

130
gitlink:git-ls-tree[1]::
131 132
	Displays a tree object in human readable form

133
gitlink:git-merge-base[1]::
134
	Finds as good a common ancestor as possible for a merge
135

136
gitlink:git-rev-list[1]::
137 138
	Lists commit objects in reverse chronological order

139
gitlink:git-show-index[1]::
140 141
	Displays contents of a pack idx file.

142
gitlink:git-tar-tree[1]::
143 144
	Creates a tar archive of the files in the named tree

145
gitlink:git-unpack-file[1]::
146 147
	Creates a temporary file with a blob's contents

148
gitlink:git-var[1]::
149 150
	Displays a git logical variable

151
gitlink:git-verify-pack[1]::
152
	Validates packed git archive files
153

154 155 156 157
The interrogate commands may create files - and you can force them to
touch the working file set - but in general they don't


158 159 160
Synching repositories
~~~~~~~~~~~~~~~~~~~~~

161
gitlink:git-clone-pack[1]::
162 163 164
	Clones a repository into the current repository (engine
	for ssh and local transport)

165
gitlink:git-fetch-pack[1]::
166 167
	Updates from a remote repository.

168
gitlink:git-http-fetch[1]::
169
	Downloads a remote git repository via HTTP
J
Junio C Hamano 已提交
170
	Previously this command was known as git-http-pull.
171

172
gitlink:git-local-fetch[1]::
173
	Duplicates another git repository on a local system
J
Junio C Hamano 已提交
174
	Previously this command was known as git-local-pull.
175

176
gitlink:git-peek-remote[1]::
177
	Lists references on a remote repository using upload-pack protocol.
178

179
gitlink:git-receive-pack[1]::
180 181
	Invoked by 'git-send-pack' to receive what is pushed to it.

182
gitlink:git-send-pack[1]::
183
	Pushes to a remote repository, intelligently.
184

185
gitlink:git-ssh-fetch[1]::
186
	Pulls from a remote repository over ssh connection
J
Junio C Hamano 已提交
187
	Previously this command was known as git-ssh-pull.
188

189
gitlink:git-ssh-upload[1]::
J
Junio C Hamano 已提交
190 191
	Helper "server-side" program used by git-ssh-fetch
	Previously this command was known as git-ssh-push.
192

193
gitlink:git-update-server-info[1]::
194 195 196
	Updates auxiliary information on a dumb server to help
	clients discover references and packs on it.

197
gitlink:git-upload-pack[1]::
198 199 200
	Invoked by 'git-clone-pack' and 'git-fetch-pack' to push
	what are asked for.

201

J
Junio C Hamano 已提交
202 203
Porcelain-ish Commands
----------------------
204

205
gitlink:git-add[1]::
206
	Add paths to the index file.
J
Junio C Hamano 已提交
207
	Previously this command was known as git-add-script.
208

209
gitlink:git-applymbox[1]::
210 211
	Apply patches from a mailbox.

212
gitlink:git-bisect[1]::
213
	Find the change that introduced a bug.
J
Junio C Hamano 已提交
214
	Previously this command was known as git-bisect-script.
215

216
gitlink:git-branch[1]::
217
	Create and Show branches.
J
Junio C Hamano 已提交
218
	Previously this command was known as git-branch-script.
219

220
gitlink:git-checkout[1]::
J
Junio C Hamano 已提交
221
	Checkout and switch to a branch.
J
Junio C Hamano 已提交
222
	Previously this command was known as git-checkout-script.
J
Junio C Hamano 已提交
223

224
gitlink:git-cherry-pick[1]::
225
	Cherry-pick the effect of an existing commit.
J
Junio C Hamano 已提交
226
	Previously this command was known as git-cherry-pick-script.
J
Junio C Hamano 已提交
227

228
gitlink:git-clone[1]::
229
	Clones a repository into a new directory.
J
Junio C Hamano 已提交
230
	Previously this command was known as git-clone-script.
J
Junio C Hamano 已提交
231

232
gitlink:git-commit[1]::
233
	Record changes to the repository.
J
Junio C Hamano 已提交
234
	Previously this command was known as git-commit-script.
J
Junio C Hamano 已提交
235

236
gitlink:git-diff[1]::
237
	Show changes between commits, commit and working tree, etc.
J
Junio C Hamano 已提交
238 239
	Previously this command was known as git-diff-script.

240
gitlink:git-fetch[1]::
J
Junio C Hamano 已提交
241
	Download from a remote repository via various protocols.
J
Junio C Hamano 已提交
242
	Previously this command was known as git-fetch-script.
J
Junio C Hamano 已提交
243

244
gitlink:git-format-patch[1]::
245
	Prepare patches for e-mail submission.
J
Junio C Hamano 已提交
246 247
	Previously this command was known as git-format-patch-script.

248
gitlink:git-grep[1]::
249 250
	Print lines matching a pattern

251
gitlink:git-log[1]::
252
	Shows commit logs.
J
Junio C Hamano 已提交
253
	Previously this command was known as git-log-script.
J
Junio C Hamano 已提交
254

255
gitlink:git-ls-remote[1]::
256
	Shows references in a remote or local repository.
J
Junio C Hamano 已提交
257
	Previously this command was known as git-ls-remote-script.
258

259
gitlink:git-merge[1]::
J
Junio C Hamano 已提交
260 261
	Grand unified merge driver.

262
gitlink:git-octopus[1]::
263
	Merge more than two commits.
J
Junio C Hamano 已提交
264
	Previously this command was known as git-octopus-script.
265

266
gitlink:git-pull[1]::
267
	Fetch from and merge with a remote repository.
J
Junio C Hamano 已提交
268
	Previously this command was known as git-pull-script.
269

270
gitlink:git-push[1]::
271
	Update remote refs along with associated objects.
J
Junio C Hamano 已提交
272
	Previously this command was known as git-push-script.
273

274
gitlink:git-rebase[1]::
275
	Rebase local commits to new upstream head.
J
Junio C Hamano 已提交
276
	Previously this command was known as git-rebase-script.
J
Junio C Hamano 已提交
277

278
gitlink:git-rename[1]::
279
	Rename files and directories.
J
Junio C Hamano 已提交
280
	Previously this command was known as git-rename-script.
J
Junio C Hamano 已提交
281

282
gitlink:git-repack[1]::
283
	Pack unpacked objects in a repository.
J
Junio C Hamano 已提交
284
	Previously this command was known as git-repack-script.
285

286
gitlink:git-reset[1]::
J
Junio C Hamano 已提交
287
	Reset current HEAD to the specified state.
J
Junio C Hamano 已提交
288
	Previously this command was known as git-reset-script.
J
Junio C Hamano 已提交
289

290
gitlink:git-resolve[1]::
291
	Merge two commits.
J
Junio C Hamano 已提交
292
	Previously this command was known as git-resolve-script.
293

294
gitlink:git-revert[1]::
295
	Revert an existing commit.
J
Junio C Hamano 已提交
296
	Previously this command was known as git-revert-script.
297

298
gitlink:git-shortlog[1]::
299 300
	Summarizes 'git log' output.

301
gitlink:git-show-branch[1]::
302 303
	Show branches and their commits.

304
gitlink:git-status[1]::
305
	Shows the working tree status.
J
Junio C Hamano 已提交
306
	Previously this command was known as git-status-script.
307

308
gitlink:git-verify-tag[1]::
309
	Check the GPG signature of tag.
J
Junio C Hamano 已提交
310
	Previously this command was known as git-verify-tag-script.
311

312
gitlink:git-whatchanged[1]::
313 314
	Shows commit logs and differences they introduce.

315

316 317
Ancillary Commands
------------------
318 319
Manipulators:

320
gitlink:git-applypatch[1]::
321
	Apply one patch extracted from an e-mail.
322

323
gitlink:git-archimport[1]::
J
Junio C Hamano 已提交
324
	Import an arch repository into git.
J
Junio C Hamano 已提交
325
	Previously this command was known as git-archimport-script.
J
Junio C Hamano 已提交
326

327
gitlink:git-convert-objects[1]::
328
	Converts old-style git repository
J
Junio C Hamano 已提交
329
	Previously this command was known as git-convert-cache.
330

331
gitlink:git-cvsimport[1]::
332
	Salvage your data out of another SCM people love to hate.
J
Junio C Hamano 已提交
333
	Previously this command was known as git-cvsimport-script.
334

335
gitlink:git-merge-one-file[1]::
J
Junio C Hamano 已提交
336 337
	The standard helper program to use with "git-merge-index"
	Previously this command was known as git-merge-one-file-script.
338

339
gitlink:git-prune[1]::
340
	Prunes all unreachable objects from the object database
J
Junio C Hamano 已提交
341
	Previously this command was known as git-prune-script.
342

343
gitlink:git-relink[1]::
344
	Hardlink common objects in local repositories.
J
Junio C Hamano 已提交
345
	Previously this command was known as git-relink-script.
346

347
gitlink:git-sh-setup[1]::
348
	Common git shell script setup code.
J
Junio C Hamano 已提交
349
	Previously this command was known as git-sh-setup-script.
350

351
gitlink:git-tag[1]::
352
	An example script to create a tag object signed with GPG
J
Junio C Hamano 已提交
353
	Previously this command was known as git-tag-script.
354 355


356
Interrogators:
357

358
gitlink:git-cherry[1]::
359
	Find commits not merged upstream.
360

361
gitlink:git-count-objects[1]::
362
	Count unpacked number of objects and their disk consumption.
J
Junio C Hamano 已提交
363
	Previously this command was known as git-count-objects-script.
364

365
gitlink:git-daemon[1]::
366
	A really simple server for git repositories.
J
Junio C Hamano 已提交
367

368
gitlink:git-get-tar-commit-id[1]::
J
Junio C Hamano 已提交
369 370
	Extract commit ID from an archive created using git-tar-tree.

371
gitlink:git-mailinfo[1]::
372 373
	Extracts patch from a single e-mail message.

374
gitlink:git-mailsplit[1]::
375 376
	git-mailsplit.

377
gitlink:git-patch-id[1]::
378
	Compute unique ID for a patch.
379

380
gitlink:git-parse-remote[1]::
J
Junio C Hamano 已提交
381
	Routines to help parsing $GIT_DIR/remotes/
J
Junio C Hamano 已提交
382
	Previously this command was known as git-parse-remote-script.
J
Junio C Hamano 已提交
383

384
gitlink:git-request-pull[1]::
J
Junio C Hamano 已提交
385 386
	git-request-pull.
	Previously this command was known as git-request-pull-script.
J
Junio C Hamano 已提交
387

388
gitlink:git-rev-parse[1]::
J
Junio C Hamano 已提交
389 390
	Pick out and massage parameters.

391
gitlink:git-send-email[1]::
392
	Send patch e-mails out of "format-patch --mbox" output.
J
Junio C Hamano 已提交
393
	Previously this command was known as git-send-email-script.
394

395
gitlink:git-stripspace[1]::
J
Junio C Hamano 已提交
396
	Filter out empty lines.
397 398


J
Junio C Hamano 已提交
399 400
Commands not yet documented
---------------------------
401

402
gitlink:gitk[1]::
403 404 405
	gitk.


406
Identifier Terminology
407 408
----------------------
<object>::
409
	Indicates the sha1 identifier for any type of object
410 411 412 413 414 415 416 417 418 419 420

<blob>::
	Indicates a blob object sha1 identifier

<tree>::
	Indicates a tree object sha1 identifier

<commit>::
	Indicates a commit object sha1 identifier

<tree-ish>::
421 422 423 424
	Indicates a tree, commit or tag object sha1 identifier.  A
	command that takes a <tree-ish> argument ultimately wants to
	operate on a <tree> object but automatically dereferences
	<commit> and <tag> objects that point at a <tree>.
425 426 427 428 429 430 431 432 433

<type>::
	Indicates that an object type is required.
	Currently one of: blob/tree/commit/tag

<file>::
	Indicates a filename - always relative to the root of
	the tree structure GIT_INDEX_FILE describes.

434 435
Symbolic Identifiers
--------------------
436
Any git command accepting any <object> can also use the following
437
symbolic notation:
438 439

HEAD::
440 441
	indicates the head of the repository (ie the contents of
	`$GIT_DIR/HEAD`)
442 443 444 445 446 447 448 449 450 451 452 453 454 455
<tag>::
	a valid tag 'name'+
	(ie the contents of `$GIT_DIR/refs/tags/<tag>`)
<head>::
	a valid head 'name'+
	(ie the contents of `$GIT_DIR/refs/heads/<head>`)
<snap>::
	a valid snapshot 'name'+
	(ie the contents of `$GIT_DIR/refs/snap/<snap>`)


File/Directory Structure
------------------------

J
Junio C Hamano 已提交
456
Please see link:repository-layout.html[repository layout] document.
457 458 459 460

Higher level SCMs may provide and manage additional information in the
GIT_DIR.

J
Junio C Hamano 已提交
461

462 463
Terminology
-----------
464
Please see link:glossary.html[glossary] document.
465 466 467 468 469 470


Environment Variables
---------------------
Various git commands use the following environment variables:

471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490
The git Repository
~~~~~~~~~~~~~~~~~~
These environment variables apply to 'all' core git commands. Nb: it
is worth noting that they may be used/overridden by SCMS sitting above
git so take care if using Cogito etc

'GIT_INDEX_FILE'::
	This environment allows the specification of an alternate
	cache/index file. If not specified, the default of
	`$GIT_DIR/index` is used.

'GIT_OBJECT_DIRECTORY'::
	If the object storage directory is specified via this
	environment variable then the sha1 directories are created
	underneath - otherwise the default `$GIT_DIR/objects`
	directory is used.

'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
	Due to the immutable nature of git objects, old objects can be
	archived into shared, read-only directories. This variable
491
	specifies a ":" separated list of git object directories which
492 493 494 495 496 497 498 499 500 501 502 503 504 505 506
	can be used to search for git objects. New objects will not be
	written to these directories.

'GIT_DIR'::
	If the 'GIT_DIR' environment variable is set then it specifies
	a path to use instead of `./.git` for the base of the
	repository.

git Commits
~~~~~~~~~~~
'GIT_AUTHOR_NAME'::
'GIT_AUTHOR_EMAIL'::
'GIT_AUTHOR_DATE'::
'GIT_COMMITTER_NAME'::
'GIT_COMMITTER_EMAIL'::
507
	see gitlink:git-commit-tree[1]
508 509 510

git Diffs
~~~~~~~~~
511 512
'GIT_DIFF_OPTS'::
'GIT_EXTERNAL_DIFF'::
513
	see the "generating patches" section in :
514 515 516
	gitlink:git-diff-index[1];
	gitlink:git-diff-files[1];
	gitlink:git-diff-tree[1]
517

J
Junio C Hamano 已提交
518 519
Discussion[[Discussion]]
------------------------
520 521
include::../README[]

522 523
Author
------
524
Written by Linus Torvalds <torvalds@osdl.org> and the git-list <git@vger.kernel.org>.
525 526 527 528 529 530 531

Documentation
--------------
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
532
Part of the gitlink:git[7] suite
533