git.txt 14.5 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

P
Petr Baudis 已提交
185 186 187
gitlink:git-shell[1]::
	Restricted shell for GIT-only SSH access.

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

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

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

200
gitlink:git-upload-pack[1]::
201 202 203
	Invoked by 'git-clone-pack' and 'git-fetch-pack' to push
	what are asked for.

204

J
Junio C Hamano 已提交
205 206
Porcelain-ish Commands
----------------------
207

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

212 213 214
gitlink:git-am[1]::
	Apply patches from a mailbox, but cooler.

215
gitlink:git-applymbox[1]::
216 217
	Apply patches from a mailbox.

218
gitlink:git-bisect[1]::
219
	Find the change that introduced a bug.
J
Junio C Hamano 已提交
220
	Previously this command was known as git-bisect-script.
221

222
gitlink:git-branch[1]::
223
	Create and Show branches.
J
Junio C Hamano 已提交
224
	Previously this command was known as git-branch-script.
225

226
gitlink:git-checkout[1]::
J
Junio C Hamano 已提交
227
	Checkout and switch to a branch.
J
Junio C Hamano 已提交
228
	Previously this command was known as git-checkout-script.
J
Junio C Hamano 已提交
229

230
gitlink:git-cherry-pick[1]::
231
	Cherry-pick the effect of an existing commit.
J
Junio C Hamano 已提交
232
	Previously this command was known as git-cherry-pick-script.
J
Junio C Hamano 已提交
233

234
gitlink:git-clone[1]::
235
	Clones a repository into a new directory.
J
Junio C Hamano 已提交
236
	Previously this command was known as git-clone-script.
J
Junio C Hamano 已提交
237

238
gitlink:git-commit[1]::
239
	Record changes to the repository.
J
Junio C Hamano 已提交
240
	Previously this command was known as git-commit-script.
J
Junio C Hamano 已提交
241

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

246
gitlink:git-fetch[1]::
J
Junio C Hamano 已提交
247
	Download from a remote repository via various protocols.
J
Junio C Hamano 已提交
248
	Previously this command was known as git-fetch-script.
J
Junio C Hamano 已提交
249

250
gitlink:git-format-patch[1]::
251
	Prepare patches for e-mail submission.
J
Junio C Hamano 已提交
252 253
	Previously this command was known as git-format-patch-script.

254
gitlink:git-grep[1]::
255 256
	Print lines matching a pattern

257
gitlink:git-log[1]::
258
	Shows commit logs.
J
Junio C Hamano 已提交
259
	Previously this command was known as git-log-script.
J
Junio C Hamano 已提交
260

261
gitlink:git-ls-remote[1]::
262
	Shows references in a remote or local repository.
J
Junio C Hamano 已提交
263
	Previously this command was known as git-ls-remote-script.
264

265
gitlink:git-merge[1]::
J
Junio C Hamano 已提交
266 267
	Grand unified merge driver.

268 269 270
gitlink:git-mv[1]::
	Move or rename a file, a directory, or a symlink.

271
gitlink:git-octopus[1]::
272
	Merge more than two commits.
J
Junio C Hamano 已提交
273
	Previously this command was known as git-octopus-script.
274

275
gitlink:git-pull[1]::
276
	Fetch from and merge with a remote repository.
J
Junio C Hamano 已提交
277
	Previously this command was known as git-pull-script.
278

279
gitlink:git-push[1]::
280
	Update remote refs along with associated objects.
J
Junio C Hamano 已提交
281
	Previously this command was known as git-push-script.
282

283
gitlink:git-rebase[1]::
284
	Rebase local commits to new upstream head.
J
Junio C Hamano 已提交
285
	Previously this command was known as git-rebase-script.
J
Junio C Hamano 已提交
286

287
gitlink:git-rename[1]::
288
	Rename files and directories.
J
Junio C Hamano 已提交
289
	Previously this command was known as git-rename-script.
J
Junio C Hamano 已提交
290

291
gitlink:git-repack[1]::
292
	Pack unpacked objects in a repository.
J
Junio C Hamano 已提交
293
	Previously this command was known as git-repack-script.
294

295
gitlink:git-reset[1]::
J
Junio C Hamano 已提交
296
	Reset current HEAD to the specified state.
J
Junio C Hamano 已提交
297
	Previously this command was known as git-reset-script.
J
Junio C Hamano 已提交
298

299
gitlink:git-resolve[1]::
300
	Merge two commits.
J
Junio C Hamano 已提交
301
	Previously this command was known as git-resolve-script.
302

303
gitlink:git-revert[1]::
304
	Revert an existing commit.
J
Junio C Hamano 已提交
305
	Previously this command was known as git-revert-script.
306

307
gitlink:git-shortlog[1]::
308 309
	Summarizes 'git log' output.

310
gitlink:git-show-branch[1]::
311 312
	Show branches and their commits.

313
gitlink:git-status[1]::
314
	Shows the working tree status.
J
Junio C Hamano 已提交
315
	Previously this command was known as git-status-script.
316

317
gitlink:git-verify-tag[1]::
318
	Check the GPG signature of tag.
J
Junio C Hamano 已提交
319
	Previously this command was known as git-verify-tag-script.
320

321
gitlink:git-whatchanged[1]::
322 323
	Shows commit logs and differences they introduce.

324

325 326
Ancillary Commands
------------------
327 328
Manipulators:

329
gitlink:git-applypatch[1]::
330
	Apply one patch extracted from an e-mail.
331

332
gitlink:git-archimport[1]::
J
Junio C Hamano 已提交
333
	Import an arch repository into git.
J
Junio C Hamano 已提交
334
	Previously this command was known as git-archimport-script.
J
Junio C Hamano 已提交
335

336
gitlink:git-convert-objects[1]::
337
	Converts old-style git repository
J
Junio C Hamano 已提交
338
	Previously this command was known as git-convert-cache.
339

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

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

348
gitlink:git-prune[1]::
349
	Prunes all unreachable objects from the object database
J
Junio C Hamano 已提交
350
	Previously this command was known as git-prune-script.
351

352
gitlink:git-relink[1]::
353
	Hardlink common objects in local repositories.
J
Junio C Hamano 已提交
354
	Previously this command was known as git-relink-script.
355

356 357 358
gitlink:git-svnimport[1]::
	Import a SVN repository into git.

359
gitlink:git-sh-setup[1]::
360
	Common git shell script setup code.
J
Junio C Hamano 已提交
361
	Previously this command was known as git-sh-setup-script.
362

363
gitlink:git-tag[1]::
364
	An example script to create a tag object signed with GPG
J
Junio C Hamano 已提交
365
	Previously this command was known as git-tag-script.
366

367 368 369
gitlink:git-update-ref[1]::
	Update the object name stored in a ref safely.

370

371
Interrogators:
372

373 374 375
gitlink:git-check-ref-format[1]::
	Make sure ref name is well formed.

376
gitlink:git-cherry[1]::
377
	Find commits not merged upstream.
378

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

383
gitlink:git-daemon[1]::
384
	A really simple server for git repositories.
J
Junio C Hamano 已提交
385

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

389
gitlink:git-mailinfo[1]::
390 391
	Extracts patch from a single e-mail message.

392
gitlink:git-mailsplit[1]::
393 394
	git-mailsplit.

395
gitlink:git-patch-id[1]::
396
	Compute unique ID for a patch.
397

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

402
gitlink:git-request-pull[1]::
J
Junio C Hamano 已提交
403 404
	git-request-pull.
	Previously this command was known as git-request-pull-script.
J
Junio C Hamano 已提交
405

406
gitlink:git-rev-parse[1]::
J
Junio C Hamano 已提交
407 408
	Pick out and massage parameters.

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

413 414 415
gitlink:git-symbolic-refs[1]::
	Read and modify symbolic refs.

416
gitlink:git-stripspace[1]::
J
Junio C Hamano 已提交
417
	Filter out empty lines.
418 419


J
Junio C Hamano 已提交
420 421
Commands not yet documented
---------------------------
422

423
gitlink:gitk[1]::
424 425 426
	gitk.


427
Identifier Terminology
428 429
----------------------
<object>::
430
	Indicates the sha1 identifier for any type of object
431 432 433 434 435 436 437 438 439 440 441

<blob>::
	Indicates a blob object sha1 identifier

<tree>::
	Indicates a tree object sha1 identifier

<commit>::
	Indicates a commit object sha1 identifier

<tree-ish>::
442 443 444 445
	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>.
446 447 448 449 450 451 452 453 454

<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.

455 456
Symbolic Identifiers
--------------------
457
Any git command accepting any <object> can also use the following
458
symbolic notation:
459 460

HEAD::
461 462
	indicates the head of the repository (ie the contents of
	`$GIT_DIR/HEAD`)
463 464 465 466 467 468 469 470 471 472 473 474 475 476
<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 已提交
477
Please see link:repository-layout.html[repository layout] document.
478 479 480 481

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

J
Junio C Hamano 已提交
482

483 484
Terminology
-----------
485
Please see link:glossary.html[glossary] document.
486 487 488 489 490 491


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

492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511
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
512
	specifies a ":" separated list of git object directories which
513 514 515 516 517 518 519 520 521 522 523 524 525 526 527
	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'::
528
	see gitlink:git-commit-tree[1]
529 530 531

git Diffs
~~~~~~~~~
532 533
'GIT_DIFF_OPTS'::
'GIT_EXTERNAL_DIFF'::
534
	see the "generating patches" section in :
535 536 537
	gitlink:git-diff-index[1];
	gitlink:git-diff-files[1];
	gitlink:git-diff-tree[1]
538

J
Junio C Hamano 已提交
539 540
Discussion[[Discussion]]
------------------------
541 542
include::../README[]

543 544
Author
------
545
Written by Linus Torvalds <torvalds@osdl.org> and the git-list <git@vger.kernel.org>.
546 547 548 549 550 551 552

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

GIT
---
553
Part of the gitlink:git[7] suite
554