]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git.txt
Documentation: multi-head fetch.
[thirdparty/git.git] / Documentation / git.txt
CommitLineData
7984eabe 1git(7)
2cf565c5 2======
3f971fc4 3v0.99.4, Aug 2005
2cf565c5
DG
4
5NAME
6----
7git - the stupid content tracker
8
9
10SYNOPSIS
11--------
12'git-<command>' <args>
13
14DESCRIPTION
15-----------
16
17This is reference information for the core git commands.
18
0d6a873c
JH
19Before reading this cover to cover, you may want to take a look
20at the link:tutorial.html[tutorial] document.
21
6c84e2e0
DG
22The Discussion section below contains much useful definition and
23clarification info - read that first. And of the commands, I suggest
24reading link:git-update-cache.html[git-update-cache] and
25link:git-read-tree.html[git-read-tree] first - I wish I had!
2cf565c5
DG
26
27David Greaves <david@dgreaves.com>
2808/05/05
29
30Updated by Junio C Hamano <junkio@cox.net> on 2005-05-05 to
31reflect recent changes.
32
33Commands Overview
34-----------------
35The git commands can helpfully be split into those that manipulate
2f2de9b4
JH
36the repository, the cache and the working fileset, those that
37interrogate and compare them, and those that moves objects and
38references between repositories.
2cf565c5 39
62033318
JH
40In addition, git itself comes with a spartan set of porcelain
41commands. They are usable but are not meant to compete with real
42Porcelains.
43
90933efb 44There are also some ancillary programs that can be viewed as useful
204ee6a9
DG
45aids for using the core commands but which are unlikely to be used by
46SCMs layered over git.
47
2cf565c5
DG
48Manipulation commands
49~~~~~~~~~~~~~~~~~~~~~
2cf565c5
DG
50link:git-checkout-cache.html[git-checkout-cache]::
51 Copy files from the cache to the working directory
52
53link:git-commit-tree.html[git-commit-tree]::
54 Creates a new commit object
55
2cf565c5
DG
56link:git-init-db.html[git-init-db]::
57 Creates an empty git object database
58
2cf565c5
DG
59link:git-merge-base.html[git-merge-base]::
60 Finds as good a common ancestor as possible for a merge
61
2cf565c5
DG
62link:git-mktag.html[git-mktag]::
63 Creates a tag object
64
2cf565c5
DG
65link:git-read-tree.html[git-read-tree]::
66 Reads tree information into the directory cache
67
2cf565c5
DG
68link:git-update-cache.html[git-update-cache]::
69 Modifies the index or directory cache
70
7672db20
BL
71link:git-hash-object.html[git-hash-object]::
72 Computes the object ID from a file.
2cf565c5
DG
73
74link:git-write-tree.html[git-write-tree]::
75 Creates a tree from the current cache
76
e31bb3bb
JH
77link:git-pack-objects.html[git-pack-objects]::
78 Creates a packed archive of objects.
79
83db04ff
JH
80link:git-unpack-objects.html[git-unpack-objects]::
81 Unpacks objects out of a packed archive.
82
e31bb3bb
JH
83link:git-prune-packed.html[git-prune-packed]::
84 Remove extra objects that are already in pack files.
85
83db04ff
JH
86link:git-apply.html[git-apply]::
87 Reads a "diff -up1" or git generated patch file and
88 applies it to the working tree.
89
e31bb3bb 90
2cf565c5
DG
91Interrogation commands
92~~~~~~~~~~~~~~~~~~~~~~
93link:git-cat-file.html[git-cat-file]::
94 Provide content or type information for repository objects
95
2cf565c5
DG
96link:git-diff-cache.html[git-diff-cache]::
97 Compares content and mode of blobs between the cache and repository
98
99link:git-diff-files.html[git-diff-files]::
100 Compares files in the working tree and the cache
101
102link:git-diff-tree.html[git-diff-tree]::
103 Compares the content and mode of blobs found via two tree objects
104
83db04ff
JH
105link:git-diff-stages.html[git-diff-stages]::
106 Compares two "merge stages" in the index file.
107
2cf565c5
DG
108link:git-export.html[git-export]::
109 Exports each commit and a diff against each of its parents
110
111link:git-fsck-cache.html[git-fsck-cache]::
112 Verifies the connectivity and validity of the objects in the database
113
114link:git-ls-files.html[git-ls-files]::
115 Information about files in the cache/working directory
116
117link:git-ls-tree.html[git-ls-tree]::
118 Displays a tree object in human readable form
119
120link:git-merge-cache.html[git-merge-cache]::
121 Runs a merge for files needing merging
122
123link:git-rev-list.html[git-rev-list]::
124 Lists commit objects in reverse chronological order
125
126link:git-rev-tree.html[git-rev-tree]::
127 Provides the revision tree for one or more commits
128
2cf565c5
DG
129link:git-tar-tree.html[git-tar-tree]::
130 Creates a tar archive of the files in the named tree
131
132link:git-unpack-file.html[git-unpack-file]::
133 Creates a temporary file with a blob's contents
134
aed022ab
EB
135link:git-var.html[git-var]::
136 Displays a git logical variable
137
83db04ff
JH
138link:git-show-index.html[git-show-index]::
139 Displays contents of a pack idx file.
140
f9253394
JH
141link:git-verify-pack.html[git-verify-pack]::
142 Validates packed GIT archive files
143
2cf565c5
DG
144The interrogate commands may create files - and you can force them to
145touch the working file set - but in general they don't
146
147
0c04094b
JH
148Synching repositories
149~~~~~~~~~~~~~~~~~~~~~
150
6ec311da
JH
151link:git-clone-script.html[git-clone-script]::
152 Clones a repository into the current repository (user interface)
153
154link:git-clone-pack.html[git-clone-pack]::
155 Clones a repository into the current repository (engine
156 for ssh and local transport)
157
204ee6a9
DG
158link:git-http-pull.html[git-http-pull]::
159 Downloads a remote GIT repository via HTTP
160
161link:git-local-pull.html[git-local-pull]::
162 Duplicates another GIT repository on a local system
163
2f2de9b4
JH
164link:git-ssh-pull.html[git-ssh-pull]::
165 Pulls from a remote repository over ssh connection
166
167link:git-send-pack.html[git-send-pack]::
168 Pushes to a remote repository, intelligently.
169
170link:git-receive-pack.html[git-receive-pack]::
171 Invoked by 'git-send-pack' to receive what is pushed to it.
172
173link:git-clone-pack.html[git-clone-pack]::
174 Clones from a remote repository.
175
176link:git-fetch-pack.html[git-fetch-pack]::
177 Updates from a remote repository.
178
508e67ab
JH
179link:git-peek-remote.html[git-peek-remote]::
180 Lists references on a remote repository using upload-pack protocol.
181
2f2de9b4
JH
182link:git-upload-pack.html[git-upload-pack]::
183 Invoked by 'git-clone-pack' and 'git-fetch-pack' to push
184 what are asked for.
185
61e3ef36
JH
186link:git-update-server-info.html[git-update-server-info]::
187 Updates auxiliary information on a dumb server to help
188 clients discover references and packs on it.
189
2f2de9b4 190
3f971fc4
JH
191Porcelain-ish Commands
192----------------------
193link:git-whatchanged.html[git-whatchanged]::
194 Shows commit logs and differences they introduce.
195
196link:git-log-script.html[git-log-script]::
197 Shows commit logs.
198
199link:git-shortlog.html[git-shortlog]::
200 Summarizes 'git log' output.
201
202link:git-status-script.html[git-status-script]::
203 Shows the working tree status.
204
62033318
JH
205link:git-fetch-script.html[git-fetch-script]::
206 Download from a remote repository via various protocols.
207
208link:git-pull-script.html[git-pull-script]::
209 Fetch from and merge with a remote repository.
210
ab9b3138
JH
211link:git-resolve-script.html[git-resolve-script]::
212 Merge two commits.
213
214link:git-octopus-script.html[git-octopus-script]::
215 Merge more than two commits.
216
217link:git-push-script.html[git-push-script]::
218 Update remote refs along with associated objects.
219
220link:git-commit-script.html[git-commit-script]::
62033318
JH
221 Record changes to the repository.
222
f5e375c9 223link:git-show-branch.html[git-show-branch]::
7c27558c 224 Show branches and their commits.
62033318 225
e31bb3bb
JH
226link:git-repack-script.html[git-repack-script]::
227 Pack unpacked objects in a repository.
228
83db04ff
JH
229link:git-rename-script.html[git-rename]::
230 Rename files and directories.
231
232link:git-ls-remote-script.html[git-ls-remote-script]::
233 Shows references in a remote or local repository.
234
e31bb3bb 235
90933efb
YS
236Ancillary Commands
237------------------
2f2de9b4
JH
238Manipulators:
239
240link:git-apply-patch-script.html[git-apply-patch-script]::
241 Sample script to apply the diffs from git-diff-*
242
243link:git-convert-cache.html[git-convert-cache]::
244 Converts old-style GIT repository
245
204ee6a9
DG
246link:git-merge-one-file-script.html[git-merge-one-file-script]::
247 The standard helper program to use with "git-merge-cache"
248
204ee6a9
DG
249link:git-prune-script.html[git-prune-script]::
250 Prunes all unreachable objects from the object database
251
204ee6a9
DG
252link:git-tag-script.html[git-tag-script]::
253 An example script to create a tag object signed with GPG
254
83db04ff
JH
255link:git-cvsimport-script.html[git-cvsimport-script]::
256 Salvage your data out of another SCM people love to hate.
257
204ee6a9 258
90933efb 259Interrogators:
204ee6a9 260
99665af5 261link:git-diff-helper.html[git-diff-helper]::
204ee6a9
DG
262 Generates patch format output for git-diff-*
263
418aaf84
JH
264link:git-ssh-push.html[git-ssh-push]::
265 Helper "server-side" program used by git-ssh-pull
204ee6a9 266
83db04ff
JH
267link:git-send-email-script.html[git-send-email]::
268 Send patch e-mails out of "format-patch --mbox" output.
204ee6a9
DG
269
270
7fc9d69f
JH
271Commands not yet documented
272---------------------------
273
274link:git-applymbox.html[git-applymbox]::
275 git-applymbox.
276
277link:git-applypatch.html[git-applypatch]::
278 git-applypatch.
279
280link:git-mailinfo.html[git-mailinfo]::
281 git-mailinfo.
282
283link:git-mailsplit.html[git-mailsplit]::
284 git-mailsplit.
285
286link:git-add-script.html[git-add-script]::
287 git-add-script.
288
289link:git-bisect-script.html[git-bisect-script]::
290 git-bisect-script.
291
292link:git-branch-script.html[git-branch-script]::
293 git-branch-script.
294
295link:git-build-rev-cache.html[git-build-rev-cache]::
296 git-build-rev-cache.
297
298link:git-checkout-script.html[git-checkout-script]::
299 git-checkout-script.
300
301link:git-cherry.html[git-cherry]::
302 git-cherry.
303
304link:git-clone-dumb-http.html[git-clone-dumb-http]::
305 git-clone-dumb-http.
306
307link:git-count-objects-script.html[git-count-objects-script]::
308 git-count-objects-script.
309
310link:git-daemon.html[git-daemon]::
311 git-daemon.
312
313link:git-diff-script.html[git-diff-script]::
314 git-diff-script.
315
316link:git-format-patch-script.html[git-format-patch-script]::
317 git-format-patch-script.
318
319link:git-get-tar-commit-id.html[git-get-tar-commit-id]::
320 git-get-tar-commit-id.
321
322link:git-patch-id.html[git-patch-id]::
323 git-patch-id.
324
7fc9d69f
JH
325link:git-rebase-script.html[git-rebase-script]::
326 git-rebase-script.
327
328link:git-relink-script.html[git-relink-script]::
329 git-relink-script.
330
331link:git-request-pull-script.html[git-request-pull-script]::
332 git-request-pull-script.
333
334link:git-reset-script.html[git-reset-script]::
335 git-reset-script.
336
337link:git-rev-parse.html[git-rev-parse]::
338 git-rev-parse.
339
340link:git-revert-script.html[git-revert-script]::
341 git-revert-script.
342
343link:git-sh-setup-script.html[git-sh-setup-script]::
344 git-sh-setup-script.
345
346link:git-show-rev-cache.html[git-show-rev-cache]::
347 git-show-rev-cache.
348
349link:git-stripspace.html[git-stripspace]::
350 git-stripspace.
351
352link:git-verify-tag-script.html[git-verify-tag-script]::
353 git-verify-tag-script.
354
355link:gitk.html[gitk]::
356 gitk.
357
358
6c84e2e0 359Identifier Terminology
2cf565c5
DG
360----------------------
361<object>::
6c84e2e0 362 Indicates the sha1 identifier for any type of object
2cf565c5
DG
363
364<blob>::
365 Indicates a blob object sha1 identifier
366
367<tree>::
368 Indicates a tree object sha1 identifier
369
370<commit>::
371 Indicates a commit object sha1 identifier
372
373<tree-ish>::
6c84e2e0
DG
374 Indicates a tree, commit or tag object sha1 identifier. A
375 command that takes a <tree-ish> argument ultimately wants to
376 operate on a <tree> object but automatically dereferences
377 <commit> and <tag> objects that point at a <tree>.
2cf565c5
DG
378
379<type>::
380 Indicates that an object type is required.
381 Currently one of: blob/tree/commit/tag
382
383<file>::
384 Indicates a filename - always relative to the root of
385 the tree structure GIT_INDEX_FILE describes.
386
c1bdacf9
DG
387Symbolic Identifiers
388--------------------
90933efb 389Any git command accepting any <object> can also use the following
6c84e2e0 390symbolic notation:
c1bdacf9
DG
391
392HEAD::
6c84e2e0
DG
393 indicates the head of the repository (ie the contents of
394 `$GIT_DIR/HEAD`)
c1bdacf9
DG
395<tag>::
396 a valid tag 'name'+
397 (ie the contents of `$GIT_DIR/refs/tags/<tag>`)
398<head>::
399 a valid head 'name'+
400 (ie the contents of `$GIT_DIR/refs/heads/<head>`)
401<snap>::
402 a valid snapshot 'name'+
403 (ie the contents of `$GIT_DIR/refs/snap/<snap>`)
404
405
406File/Directory Structure
407------------------------
408The git-core manipulates the following areas in the directory:
409
410 .git/ The base (overridden with $GIT_DIR)
411 objects/ The object base (overridden with $GIT_OBJECT_DIRECTORY)
2f2de9b4
JH
412 ??/ 'First 2 chars of object' directories.
413 pack/ Packed archives.
c1bdacf9
DG
414
415 refs/ Directories containing symbolic names for objects
416 (each file contains the hex SHA1 + newline)
417 heads/ Commits which are heads of various sorts
418 tags/ Tags, by the tag name (or some local renaming of it)
2f2de9b4
JH
419 */ Any other subdirectory of refs/ can be used to store
420 files similar to what are under refs/heads/.
421 HEAD Symlink to refs/heads/<current-branch-name>
c1bdacf9
DG
422
423Higher level SCMs may provide and manage additional information in the
424GIT_DIR.
425
2cf565c5
DG
426Terminology
427-----------
1bff6490 428Please see link:glossary.html[glossary] document.
2cf565c5
DG
429
430
431Environment Variables
432---------------------
433Various git commands use the following environment variables:
434
c1bdacf9
DG
435The git Repository
436~~~~~~~~~~~~~~~~~~
437These environment variables apply to 'all' core git commands. Nb: it
438is worth noting that they may be used/overridden by SCMS sitting above
439git so take care if using Cogito etc
440
441'GIT_INDEX_FILE'::
442 This environment allows the specification of an alternate
443 cache/index file. If not specified, the default of
444 `$GIT_DIR/index` is used.
445
446'GIT_OBJECT_DIRECTORY'::
447 If the object storage directory is specified via this
448 environment variable then the sha1 directories are created
449 underneath - otherwise the default `$GIT_DIR/objects`
450 directory is used.
451
452'GIT_ALTERNATE_OBJECT_DIRECTORIES'::
453 Due to the immutable nature of git objects, old objects can be
454 archived into shared, read-only directories. This variable
90933efb 455 specifies a ":" separated list of git object directories which
c1bdacf9
DG
456 can be used to search for git objects. New objects will not be
457 written to these directories.
458
459'GIT_DIR'::
460 If the 'GIT_DIR' environment variable is set then it specifies
461 a path to use instead of `./.git` for the base of the
462 repository.
463
464git Commits
465~~~~~~~~~~~
466'GIT_AUTHOR_NAME'::
467'GIT_AUTHOR_EMAIL'::
468'GIT_AUTHOR_DATE'::
469'GIT_COMMITTER_NAME'::
470'GIT_COMMITTER_EMAIL'::
471 see link:git-commit-tree.html[git-commit-tree]
472
473git Diffs
474~~~~~~~~~
d81ed1b5
JH
475'GIT_DIFF_OPTS'::
476'GIT_EXTERNAL_DIFF'::
c1bdacf9
DG
477 see the "generating patches" section in :
478 link:git-diff-cache.html[git-diff-cache];
479 link:git-diff-files.html[git-diff-files];
480 link:git-diff-tree.html[git-diff-tree]
2cf565c5 481
6c84e2e0
DG
482Discussion
483----------
484include::../README[]
485
2cf565c5
DG
486Author
487------
6c84e2e0 488Written by Linus Torvalds <torvalds@osdl.org> and the git-list <git@vger.kernel.org>.
2cf565c5
DG
489
490Documentation
491--------------
492Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
493
494GIT
495---
496Part of the link:git.html[git] suite
497