Autogenerated HTML docs for v1.7.1
[git/jnareb-git.git] / gitglossary.html
blobbc39c38ff6051038872ca4cdbd50538f662fab05
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
4 <head>
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6 <meta name="generator" content="AsciiDoc 8.2.5" />
7 <style type="text/css">
8 /* Debug borders */
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
11 border: 1px solid red;
15 body {
16 margin: 1em 5% 1em 5%;
19 a {
20 color: blue;
21 text-decoration: underline;
23 a:visited {
24 color: fuchsia;
27 em {
28 font-style: italic;
31 strong {
32 font-weight: bold;
35 tt {
36 color: navy;
39 h1, h2, h3, h4, h5, h6 {
40 color: #527bbd;
41 font-family: sans-serif;
42 margin-top: 1.2em;
43 margin-bottom: 0.5em;
44 line-height: 1.3;
47 h1, h2, h3 {
48 border-bottom: 2px solid silver;
50 h2 {
51 padding-top: 0.5em;
53 h3 {
54 float: left;
56 h3 + * {
57 clear: left;
60 div.sectionbody {
61 font-family: serif;
62 margin-left: 0;
65 hr {
66 border: 1px solid silver;
69 p {
70 margin-top: 0.5em;
71 margin-bottom: 0.5em;
74 pre {
75 padding: 0;
76 margin: 0;
79 span#author {
80 color: #527bbd;
81 font-family: sans-serif;
82 font-weight: bold;
83 font-size: 1.1em;
85 span#email {
87 span#revision {
88 font-family: sans-serif;
91 div#footer {
92 font-family: sans-serif;
93 font-size: small;
94 border-top: 2px solid silver;
95 padding-top: 0.5em;
96 margin-top: 4.0em;
98 div#footer-text {
99 float: left;
100 padding-bottom: 0.5em;
102 div#footer-badges {
103 float: right;
104 padding-bottom: 0.5em;
107 div#preamble,
108 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
109 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
110 div.admonitionblock {
111 margin-right: 10%;
112 margin-top: 1.5em;
113 margin-bottom: 1.5em;
115 div.admonitionblock {
116 margin-top: 2.5em;
117 margin-bottom: 2.5em;
120 div.content { /* Block element content. */
121 padding: 0;
124 /* Block element titles. */
125 div.title, caption.title {
126 font-family: sans-serif;
127 font-weight: bold;
128 text-align: left;
129 margin-top: 1.0em;
130 margin-bottom: 0.5em;
132 div.title + * {
133 margin-top: 0;
136 td div.title:first-child {
137 margin-top: 0.0em;
139 div.content div.title:first-child {
140 margin-top: 0.0em;
142 div.content + div.title {
143 margin-top: 0.0em;
146 div.sidebarblock > div.content {
147 background: #ffffee;
148 border: 1px solid silver;
149 padding: 0.5em;
152 div.listingblock {
153 margin-right: 0%;
155 div.listingblock > div.content {
156 border: 1px solid silver;
157 background: #f4f4f4;
158 padding: 0.5em;
161 div.quoteblock > div.content {
162 padding-left: 2.0em;
165 div.attribution {
166 text-align: right;
168 div.verseblock + div.attribution {
169 text-align: left;
172 div.admonitionblock .icon {
173 vertical-align: top;
174 font-size: 1.1em;
175 font-weight: bold;
176 text-decoration: underline;
177 color: #527bbd;
178 padding-right: 0.5em;
180 div.admonitionblock td.content {
181 padding-left: 0.5em;
182 border-left: 2px solid silver;
185 div.exampleblock > div.content {
186 border-left: 2px solid silver;
187 padding: 0.5em;
190 div.verseblock div.content {
191 white-space: pre;
194 div.imageblock div.content { padding-left: 0; }
195 div.imageblock img { border: 1px solid silver; }
196 span.image img { border-style: none; }
198 dl {
199 margin-top: 0.8em;
200 margin-bottom: 0.8em;
202 dt {
203 margin-top: 0.5em;
204 margin-bottom: 0;
205 font-style: italic;
207 dd > *:first-child {
208 margin-top: 0;
211 ul, ol {
212 list-style-position: outside;
214 div.olist2 ol {
215 list-style-type: lower-alpha;
218 div.tableblock > table {
219 border: 3px solid #527bbd;
221 thead {
222 font-family: sans-serif;
223 font-weight: bold;
225 tfoot {
226 font-weight: bold;
229 div.hlist {
230 margin-top: 0.8em;
231 margin-bottom: 0.8em;
233 div.hlist td {
234 padding-bottom: 5px;
236 td.hlist1 {
237 vertical-align: top;
238 font-style: italic;
239 padding-right: 0.8em;
241 td.hlist2 {
242 vertical-align: top;
245 @media print {
246 div#footer-badges { display: none; }
249 div#toctitle {
250 color: #527bbd;
251 font-family: sans-serif;
252 font-size: 1.1em;
253 font-weight: bold;
254 margin-top: 1.0em;
255 margin-bottom: 0.1em;
258 div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
259 margin-top: 0;
260 margin-bottom: 0;
262 div.toclevel2 {
263 margin-left: 2em;
264 font-size: 0.9em;
266 div.toclevel3 {
267 margin-left: 4em;
268 font-size: 0.9em;
270 div.toclevel4 {
271 margin-left: 6em;
272 font-size: 0.9em;
274 include1::./stylesheets/xhtml11-manpage.css[]
275 /* Workarounds for IE6's broken and incomplete CSS2. */
277 div.sidebar-content {
278 background: #ffffee;
279 border: 1px solid silver;
280 padding: 0.5em;
282 div.sidebar-title, div.image-title {
283 font-family: sans-serif;
284 font-weight: bold;
285 margin-top: 0.0em;
286 margin-bottom: 0.5em;
289 div.listingblock div.content {
290 border: 1px solid silver;
291 background: #f4f4f4;
292 padding: 0.5em;
295 div.quoteblock-content {
296 padding-left: 2.0em;
299 div.exampleblock-content {
300 border-left: 2px solid silver;
301 padding-left: 0.5em;
304 /* IE6 sets dynamically generated links as visited. */
305 div#toc a:visited { color: blue; }
306 </style>
307 <title>gitglossary(7)</title>
308 </head>
309 <body>
310 <div id="header">
311 <h1>
312 gitglossary(7) Manual Page
313 </h1>
314 <h2>NAME</h2>
315 <div class="sectionbody">
316 <p>gitglossary -
317 A GIT Glossary
318 </p>
319 </div>
320 </div>
321 <h2>SYNOPSIS</h2>
322 <div class="sectionbody">
323 <div class="para"><p>*</p></div>
324 </div>
325 <h2 id="_description">DESCRIPTION</h2>
326 <div class="sectionbody">
327 <div class="vlist"><dl>
328 <dt>
329 <a id="def_alternate_object_database"></a>alternate object database
330 </dt>
331 <dd>
333 Via the alternates mechanism, a <a href="#def_repository">repository</a>
334 can inherit part of its <a href="#def_object_database">object database</a>
335 from another object database, which is called "alternate".
336 </p>
337 </dd>
338 <dt>
339 <a id="def_bare_repository"></a>bare repository
340 </dt>
341 <dd>
343 A bare repository is normally an appropriately
344 named <a href="#def_directory">directory</a> with a <tt>.git</tt> suffix that does not
345 have a locally checked-out copy of any of the files under
346 revision control. That is, all of the <tt>git</tt>
347 administrative and control files that would normally be present in the
348 hidden <tt>.git</tt> sub-directory are directly present in the
349 <tt>repository.git</tt> directory instead,
350 and no other files are present and checked out. Usually publishers of
351 public repositories make bare repositories available.
352 </p>
353 </dd>
354 <dt>
355 <a id="def_blob_object"></a>blob object
356 </dt>
357 <dd>
359 Untyped <a href="#def_object">object</a>, e.g. the contents of a file.
360 </p>
361 </dd>
362 <dt>
363 <a id="def_branch"></a>branch
364 </dt>
365 <dd>
367 A "branch" is an active line of development. The most recent
368 <a href="#def_commit">commit</a> on a branch is referred to as the tip of
369 that branch. The tip of the branch is referenced by a branch
370 <a href="#def_head">head</a>, which moves forward as additional development
371 is done on the branch. A single git
372 <a href="#def_repository">repository</a> can track an arbitrary number of
373 branches, but your <a href="#def_working_tree">working tree</a> is
374 associated with just one of them (the "current" or "checked out"
375 branch), and <a href="#def_HEAD">HEAD</a> points to that branch.
376 </p>
377 </dd>
378 <dt>
379 <a id="def_cache"></a>cache
380 </dt>
381 <dd>
383 Obsolete for: <a href="#def_index">index</a>.
384 </p>
385 </dd>
386 <dt>
387 <a id="def_chain"></a>chain
388 </dt>
389 <dd>
391 A list of objects, where each <a href="#def_object">object</a> in the list contains
392 a reference to its successor (for example, the successor of a
393 <a href="#def_commit">commit</a> could be one of its <a href="#def_parent">parents</a>).
394 </p>
395 </dd>
396 <dt>
397 <a id="def_changeset"></a>changeset
398 </dt>
399 <dd>
401 BitKeeper/cvsps speak for "<a href="#def_commit">commit</a>". Since git does not
402 store changes, but states, it really does not make sense to use the term
403 "changesets" with git.
404 </p>
405 </dd>
406 <dt>
407 <a id="def_checkout"></a>checkout
408 </dt>
409 <dd>
411 The action of updating all or part of the
412 <a href="#def_working_tree">working tree</a> with a <a href="#def_tree_object">tree object</a>
413 or <a href="#def_blob_object">blob</a> from the
414 <a href="#def_object_database">object database</a>, and updating the
415 <a href="#def_index">index</a> and <a href="#def_HEAD">HEAD</a> if the whole working tree has
416 been pointed at a new <a href="#def_branch">branch</a>.
417 </p>
418 </dd>
419 <dt>
420 <a id="def_cherry-picking"></a>cherry-picking
421 </dt>
422 <dd>
424 In <a href="#def_SCM">SCM</a> jargon, "cherry pick" means to choose a subset of
425 changes out of a series of changes (typically commits) and record them
426 as a new series of changes on top of a different codebase. In GIT, this is
427 performed by the "git cherry-pick" command to extract the change introduced
428 by an existing <a href="#def_commit">commit</a> and to record it based on the tip
429 of the current <a href="#def_branch">branch</a> as a new commit.
430 </p>
431 </dd>
432 <dt>
433 <a id="def_clean"></a>clean
434 </dt>
435 <dd>
437 A <a href="#def_working_tree">working tree</a> is clean, if it
438 corresponds to the <a href="#def_revision">revision</a> referenced by the current
439 <a href="#def_head">head</a>. Also see "<a href="#def_dirty">dirty</a>".
440 </p>
441 </dd>
442 <dt>
443 <a id="def_commit"></a>commit
444 </dt>
445 <dd>
447 As a noun: A single point in the
448 git history; the entire history of a project is represented as a
449 set of interrelated commits. The word "commit" is often
450 used by git in the same places other revision control systems
451 use the words "revision" or "version". Also used as a short
452 hand for <a href="#def_commit_object">commit object</a>.
453 </p>
454 <div class="para"><p>As a verb: The action of storing a new snapshot of the project's
455 state in the git history, by creating a new commit representing the current
456 state of the <a href="#def_index">index</a> and advancing <a href="#def_HEAD">HEAD</a>
457 to point at the new commit.</p></div>
458 </dd>
459 <dt>
460 <a id="def_commit_object"></a>commit object
461 </dt>
462 <dd>
464 An <a href="#def_object">object</a> which contains the information about a
465 particular <a href="#def_revision">revision</a>, such as <a href="#def_parent">parents</a>, committer,
466 author, date and the <a href="#def_tree_object">tree object</a> which corresponds
467 to the top <a href="#def_directory">directory</a> of the stored
468 revision.
469 </p>
470 </dd>
471 <dt>
472 <a id="def_core_git"></a>core git
473 </dt>
474 <dd>
476 Fundamental data structures and utilities of git. Exposes only limited
477 source code management tools.
478 </p>
479 </dd>
480 <dt>
481 <a id="def_DAG"></a>DAG
482 </dt>
483 <dd>
485 Directed acyclic graph. The <a href="#def_commit_object">commit objects</a> form a
486 directed acyclic graph, because they have parents (directed), and the
487 graph of commit objects is acyclic (there is no <a href="#def_chain">chain</a>
488 which begins and ends with the same <a href="#def_object">object</a>).
489 </p>
490 </dd>
491 <dt>
492 <a id="def_dangling_object"></a>dangling object
493 </dt>
494 <dd>
496 An <a href="#def_unreachable_object">unreachable object</a> which is not
497 <a href="#def_reachable">reachable</a> even from other unreachable objects; a
498 dangling object has no references to it from any
499 reference or <a href="#def_object">object</a> in the <a href="#def_repository">repository</a>.
500 </p>
501 </dd>
502 <dt>
503 <a id="def_detached_HEAD"></a>detached HEAD
504 </dt>
505 <dd>
507 Normally the <a href="#def_HEAD">HEAD</a> stores the name of a
508 <a href="#def_branch">branch</a>. However, git also allows you to <a href="#def_checkout">check out</a>
509 an arbitrary <a href="#def_commit">commit</a> that isn't necessarily the tip of any
510 particular branch. In this case HEAD is said to be "detached".
511 </p>
512 </dd>
513 <dt>
514 <a id="def_dircache"></a>dircache
515 </dt>
516 <dd>
518 You are <strong>waaaaay</strong> behind. See <a href="#def_index">index</a>.
519 </p>
520 </dd>
521 <dt>
522 <a id="def_directory"></a>directory
523 </dt>
524 <dd>
526 The list you get with "ls" :-)
527 </p>
528 </dd>
529 <dt>
530 <a id="def_dirty"></a>dirty
531 </dt>
532 <dd>
534 A <a href="#def_working_tree">working tree</a> is said to be "dirty" if
535 it contains modifications which have not been <a href="#def_commit">committed</a> to the current
536 <a href="#def_branch">branch</a>.
537 </p>
538 </dd>
539 <dt>
540 <a id="def_ent"></a>ent
541 </dt>
542 <dd>
544 Favorite synonym to "<a href="#def_tree-ish">tree-ish</a>" by some total geeks. See
545 <tt>http://en.wikipedia.org/wiki/Ent_(Middle-earth)</tt> for an in-depth
546 explanation. Avoid this term, not to confuse people.
547 </p>
548 </dd>
549 <dt>
550 <a id="def_evil_merge"></a>evil merge
551 </dt>
552 <dd>
554 An evil merge is a <a href="#def_merge">merge</a> that introduces changes that
555 do not appear in any <a href="#def_parent">parent</a>.
556 </p>
557 </dd>
558 <dt>
559 <a id="def_fast_forward"></a>fast-forward
560 </dt>
561 <dd>
563 A fast-forward is a special type of <a href="#def_merge">merge</a> where you have a
564 <a href="#def_revision">revision</a> and you are "merging" another
565 <a href="#def_branch">branch</a>'s changes that happen to be a descendant of what
566 you have. In such these cases, you do not make a new <a href="#def_merge">merge</a>
567 <a href="#def_commit">commit</a> but instead just update to his
568 revision. This will happen frequently on a
569 <a href="#def_tracking_branch">tracking branch</a> of a remote
570 <a href="#def_repository">repository</a>.
571 </p>
572 </dd>
573 <dt>
574 <a id="def_fetch"></a>fetch
575 </dt>
576 <dd>
578 Fetching a <a href="#def_branch">branch</a> means to get the
579 branch's <a href="#def_head_ref">head ref</a> from a remote
580 <a href="#def_repository">repository</a>, to find out which objects are
581 missing from the local <a href="#def_object_database">object database</a>,
582 and to get them, too. See also <a href="git-fetch.html">git-fetch(1)</a>.
583 </p>
584 </dd>
585 <dt>
586 <a id="def_file_system"></a>file system
587 </dt>
588 <dd>
590 Linus Torvalds originally designed git to be a user space file system,
591 i.e. the infrastructure to hold files and directories. That ensured the
592 efficiency and speed of git.
593 </p>
594 </dd>
595 <dt>
596 <a id="def_git_archive"></a>git archive
597 </dt>
598 <dd>
600 Synonym for <a href="#def_repository">repository</a> (for arch people).
601 </p>
602 </dd>
603 <dt>
604 <a id="def_grafts"></a>grafts
605 </dt>
606 <dd>
608 Grafts enables two otherwise different lines of development to be joined
609 together by recording fake ancestry information for commits. This way
610 you can make git pretend the set of <a href="#def_parent">parents</a> a <a href="#def_commit">commit</a> has
611 is different from what was recorded when the commit was
612 created. Configured via the <tt>.git/info/grafts</tt> file.
613 </p>
614 </dd>
615 <dt>
616 <a id="def_hash"></a>hash
617 </dt>
618 <dd>
620 In git's context, synonym to <a href="#def_object_name">object name</a>.
621 </p>
622 </dd>
623 <dt>
624 <a id="def_head"></a>head
625 </dt>
626 <dd>
628 A <a href="#def_ref">named reference</a> to the <a href="#def_commit">commit</a> at the tip of a
629 <a href="#def_branch">branch</a>. Heads are stored in
630 <tt>$GIT_DIR/refs/heads/</tt>, except when using packed refs. (See
631 <a href="git-pack-refs.html">git-pack-refs(1)</a>.)
632 </p>
633 </dd>
634 <dt>
635 <a id="def_HEAD"></a>HEAD
636 </dt>
637 <dd>
639 The current <a href="#def_branch">branch</a>. In more detail: Your <a href="#def_working_tree">working tree</a> is normally derived from the state of the tree
640 referred to by HEAD. HEAD is a reference to one of the
641 <a href="#def_head">heads</a> in your repository, except when using a
642 <a href="#def_detached_HEAD">detached HEAD</a>, in which case it may
643 reference an arbitrary commit.
644 </p>
645 </dd>
646 <dt>
647 <a id="def_head_ref"></a>head ref
648 </dt>
649 <dd>
651 A synonym for <a href="#def_head">head</a>.
652 </p>
653 </dd>
654 <dt>
655 <a id="def_hook"></a>hook
656 </dt>
657 <dd>
659 During the normal execution of several git commands, call-outs are made
660 to optional scripts that allow a developer to add functionality or
661 checking. Typically, the hooks allow for a command to be pre-verified
662 and potentially aborted, and allow for a post-notification after the
663 operation is done. The hook scripts are found in the
664 <tt>$GIT_DIR/hooks/</tt> directory, and are enabled by simply
665 removing the <tt>.sample</tt> suffix from the filename. In earlier versions
666 of git you had to make them executable.
667 </p>
668 </dd>
669 <dt>
670 <a id="def_index"></a>index
671 </dt>
672 <dd>
674 A collection of files with stat information, whose contents are stored
675 as objects. The index is a stored version of your
676 <a href="#def_working_tree">working tree</a>. Truth be told, it can also contain a second, and even
677 a third version of a working tree, which are used
678 when <a href="#def_merge">merging</a>.
679 </p>
680 </dd>
681 <dt>
682 <a id="def_index_entry"></a>index entry
683 </dt>
684 <dd>
686 The information regarding a particular file, stored in the
687 <a href="#def_index">index</a>. An index entry can be unmerged, if a
688 <a href="#def_merge">merge</a> was started, but not yet finished (i.e. if
689 the index contains multiple versions of that file).
690 </p>
691 </dd>
692 <dt>
693 <a id="def_master"></a>master
694 </dt>
695 <dd>
697 The default development <a href="#def_branch">branch</a>. Whenever you
698 create a git <a href="#def_repository">repository</a>, a branch named
699 "master" is created, and becomes the active branch. In most
700 cases, this contains the local development, though that is
701 purely by convention and is not required.
702 </p>
703 </dd>
704 <dt>
705 <a id="def_merge"></a>merge
706 </dt>
707 <dd>
709 As a verb: To bring the contents of another
710 <a href="#def_branch">branch</a> (possibly from an external
711 <a href="#def_repository">repository</a>) into the current branch. In the
712 case where the merged-in branch is from a different repository,
713 this is done by first <a href="#def_fetch">fetching</a> the remote branch
714 and then merging the result into the current branch. This
715 combination of fetch and merge operations is called a
716 <a href="#def_pull">pull</a>. Merging is performed by an automatic process
717 that identifies changes made since the branches diverged, and
718 then applies all those changes together. In cases where changes
719 conflict, manual intervention may be required to complete the
720 merge.
721 </p>
722 <div class="para"><p>As a noun: unless it is a <a href="#def_fast_forward">fast-forward</a>, a
723 successful merge results in the creation of a new <a href="#def_commit">commit</a>
724 representing the result of the merge, and having as
725 <a href="#def_parent">parents</a> the tips of the merged <a href="#def_branch">branches</a>.
726 This commit is referred to as a "merge commit", or sometimes just a
727 "merge".</p></div>
728 </dd>
729 <dt>
730 <a id="def_object"></a>object
731 </dt>
732 <dd>
734 The unit of storage in git. It is uniquely identified by the
735 <a href="#def_SHA1">SHA1</a> of its contents. Consequently, an
736 object can not be changed.
737 </p>
738 </dd>
739 <dt>
740 <a id="def_object_database"></a>object database
741 </dt>
742 <dd>
744 Stores a set of "objects", and an individual <a href="#def_object">object</a> is
745 identified by its <a href="#def_object_name">object name</a>. The objects usually
746 live in <tt>$GIT_DIR/objects/</tt>.
747 </p>
748 </dd>
749 <dt>
750 <a id="def_object_identifier"></a>object identifier
751 </dt>
752 <dd>
754 Synonym for <a href="#def_object_name">object name</a>.
755 </p>
756 </dd>
757 <dt>
758 <a id="def_object_name"></a>object name
759 </dt>
760 <dd>
762 The unique identifier of an <a href="#def_object">object</a>. The <a href="#def_hash">hash</a>
763 of the object's contents using the Secure Hash Algorithm
764 1 and usually represented by the 40 character hexadecimal encoding of
765 the <a href="#def_hash">hash</a> of the object.
766 </p>
767 </dd>
768 <dt>
769 <a id="def_object_type"></a>object type
770 </dt>
771 <dd>
773 One of the identifiers "<a href="#def_commit_object">commit</a>",
774 "<a href="#def_tree_object">tree</a>", "<a href="#def_tag_object">tag</a>" or
775 "<a href="#def_blob_object">blob</a>" describing the type of an
776 <a href="#def_object">object</a>.
777 </p>
778 </dd>
779 <dt>
780 <a id="def_octopus"></a>octopus
781 </dt>
782 <dd>
784 To <a href="#def_merge">merge</a> more than two <a href="#def_branch">branches</a>. Also denotes an
785 intelligent predator.
786 </p>
787 </dd>
788 <dt>
789 <a id="def_origin"></a>origin
790 </dt>
791 <dd>
793 The default upstream <a href="#def_repository">repository</a>. Most projects have
794 at least one upstream project which they track. By default
795 <em>origin</em> is used for that purpose. New upstream updates
796 will be fetched into remote <a href="#def_tracking_branch">tracking branches</a> named
797 origin/name-of-upstream-branch, which you can see using
798 <tt>git branch -r</tt>.
799 </p>
800 </dd>
801 <dt>
802 <a id="def_pack"></a>pack
803 </dt>
804 <dd>
806 A set of objects which have been compressed into one file (to save space
807 or to transmit them efficiently).
808 </p>
809 </dd>
810 <dt>
811 <a id="def_pack_index"></a>pack index
812 </dt>
813 <dd>
815 The list of identifiers, and other information, of the objects in a
816 <a href="#def_pack">pack</a>, to assist in efficiently accessing the contents of a
817 pack.
818 </p>
819 </dd>
820 <dt>
821 <a id="def_parent"></a>parent
822 </dt>
823 <dd>
825 A <a href="#def_commit_object">commit object</a> contains a (possibly empty) list
826 of the logical predecessor(s) in the line of development, i.e. its
827 parents.
828 </p>
829 </dd>
830 <dt>
831 <a id="def_pickaxe"></a>pickaxe
832 </dt>
833 <dd>
835 The term <a href="#def_pickaxe">pickaxe</a> refers to an option to the diffcore
836 routines that help select changes that add or delete a given text
837 string. With the <tt>--pickaxe-all</tt> option, it can be used to view the full
838 <a href="#def_changeset">changeset</a> that introduced or removed, say, a
839 particular line of text. See <a href="git-diff.html">git-diff(1)</a>.
840 </p>
841 </dd>
842 <dt>
843 <a id="def_plumbing"></a>plumbing
844 </dt>
845 <dd>
847 Cute name for <a href="#def_core_git">core git</a>.
848 </p>
849 </dd>
850 <dt>
851 <a id="def_porcelain"></a>porcelain
852 </dt>
853 <dd>
855 Cute name for programs and program suites depending on
856 <a href="#def_core_git">core git</a>, presenting a high level access to
857 core git. Porcelains expose more of a <a href="#def_SCM">SCM</a>
858 interface than the <a href="#def_plumbing">plumbing</a>.
859 </p>
860 </dd>
861 <dt>
862 <a id="def_pull"></a>pull
863 </dt>
864 <dd>
866 Pulling a <a href="#def_branch">branch</a> means to <a href="#def_fetch">fetch</a> it and
867 <a href="#def_merge">merge</a> it. See also <a href="git-pull.html">git-pull(1)</a>.
868 </p>
869 </dd>
870 <dt>
871 <a id="def_push"></a>push
872 </dt>
873 <dd>
875 Pushing a <a href="#def_branch">branch</a> means to get the branch's
876 <a href="#def_head_ref">head ref</a> from a remote <a href="#def_repository">repository</a>,
877 find out if it is a direct ancestor to the branch's local
878 head ref, and in that case, putting all
879 objects, which are <a href="#def_reachable">reachable</a> from the local
880 head ref, and which are missing from the remote
881 repository, into the remote
882 <a href="#def_object_database">object database</a>, and updating the remote
883 head ref. If the remote <a href="#def_head">head</a> is not an
884 ancestor to the local head, the push fails.
885 </p>
886 </dd>
887 <dt>
888 <a id="def_reachable"></a>reachable
889 </dt>
890 <dd>
892 All of the ancestors of a given <a href="#def_commit">commit</a> are said to be
893 "reachable" from that commit. More
894 generally, one <a href="#def_object">object</a> is reachable from
895 another if we can reach the one from the other by a <a href="#def_chain">chain</a>
896 that follows <a href="#def_tag">tags</a> to whatever they tag,
897 <a href="#def_commit_object">commits</a> to their parents or trees, and
898 <a href="#def_tree_object">trees</a> to the trees or <a href="#def_blob_object">blobs</a>
899 that they contain.
900 </p>
901 </dd>
902 <dt>
903 <a id="def_rebase"></a>rebase
904 </dt>
905 <dd>
907 To reapply a series of changes from a <a href="#def_branch">branch</a> to a
908 different base, and reset the <a href="#def_head">head</a> of that branch
909 to the result.
910 </p>
911 </dd>
912 <dt>
913 <a id="def_ref"></a>ref
914 </dt>
915 <dd>
917 A 40-byte hex representation of a <a href="#def_SHA1">SHA1</a> or a name that
918 denotes a particular <a href="#def_object">object</a>. These may be stored in
919 <tt>$GIT_DIR/refs/</tt>.
920 </p>
921 </dd>
922 <dt>
923 <a id="def_reflog"></a>reflog
924 </dt>
925 <dd>
927 A reflog shows the local "history" of a ref. In other words,
928 it can tell you what the 3rd last revision in _this_ repository
929 was, and what was the current state in _this_ repository,
930 yesterday 9:14pm. See <a href="git-reflog.html">git-reflog(1)</a> for details.
931 </p>
932 </dd>
933 <dt>
934 <a id="def_refspec"></a>refspec
935 </dt>
936 <dd>
938 A "refspec" is used by <a href="#def_fetch">fetch</a> and
939 <a href="#def_push">push</a> to describe the mapping between remote
940 <a href="#def_ref">ref</a> and local ref. They are combined with a colon in
941 the format &lt;src&gt;:&lt;dst&gt;, preceded by an optional plus sign, +.
942 For example: <tt>git fetch $URL
943 refs/heads/master:refs/heads/origin</tt> means "grab the master
944 <a href="#def_branch">branch</a> <a href="#def_head">head</a> from the $URL and store
945 it as my origin branch head". And <tt>git push
946 $URL refs/heads/master:refs/heads/to-upstream</tt> means "publish my
947 master branch head as to-upstream branch at $URL". See also
948 <a href="git-push.html">git-push(1)</a>.
949 </p>
950 </dd>
951 <dt>
952 <a id="def_repository"></a>repository
953 </dt>
954 <dd>
956 A collection of <a href="#def_ref">refs</a> together with an
957 <a href="#def_object_database">object database</a> containing all objects
958 which are <a href="#def_reachable">reachable</a> from the refs, possibly
959 accompanied by meta data from one or more <a href="#def_porcelain">porcelains</a>. A
960 repository can share an object database with other repositories
961 via <a href="#def_alternate_object_database">alternates mechanism</a>.
962 </p>
963 </dd>
964 <dt>
965 <a id="def_resolve"></a>resolve
966 </dt>
967 <dd>
969 The action of fixing up manually what a failed automatic
970 <a href="#def_merge">merge</a> left behind.
971 </p>
972 </dd>
973 <dt>
974 <a id="def_revision"></a>revision
975 </dt>
976 <dd>
978 A particular state of files and directories which was stored in the
979 <a href="#def_object_database">object database</a>. It is referenced by a
980 <a href="#def_commit_object">commit object</a>.
981 </p>
982 </dd>
983 <dt>
984 <a id="def_rewind"></a>rewind
985 </dt>
986 <dd>
988 To throw away part of the development, i.e. to assign the
989 <a href="#def_head">head</a> to an earlier <a href="#def_revision">revision</a>.
990 </p>
991 </dd>
992 <dt>
993 <a id="def_SCM"></a>SCM
994 </dt>
995 <dd>
997 Source code management (tool).
998 </p>
999 </dd>
1000 <dt>
1001 <a id="def_SHA1"></a>SHA1
1002 </dt>
1003 <dd>
1005 Synonym for <a href="#def_object_name">object name</a>.
1006 </p>
1007 </dd>
1008 <dt>
1009 <a id="def_shallow_repository"></a>shallow repository
1010 </dt>
1011 <dd>
1013 A shallow <a href="#def_repository">repository</a> has an incomplete
1014 history some of whose <a href="#def_commit">commits</a> have <a href="#def_parent">parents</a> cauterized away (in other
1015 words, git is told to pretend that these commits do not have the
1016 parents, even though they are recorded in the <a href="#def_commit_object">commit object</a>). This is sometimes useful when you are interested only in the
1017 recent history of a project even though the real history recorded in the
1018 upstream is much larger. A shallow repository
1019 is created by giving the <tt>--depth</tt> option to <a href="git-clone.html">git-clone(1)</a>, and
1020 its history can be later deepened with <a href="git-fetch.html">git-fetch(1)</a>.
1021 </p>
1022 </dd>
1023 <dt>
1024 <a id="def_symref"></a>symref
1025 </dt>
1026 <dd>
1028 Symbolic reference: instead of containing the <a href="#def_SHA1">SHA1</a>
1029 id itself, it is of the format <em>ref: refs/some/thing</em> and when
1030 referenced, it recursively dereferences to this reference.
1031 <em><a href="#def_HEAD">HEAD</a></em> is a prime example of a symref. Symbolic
1032 references are manipulated with the <a href="git-symbolic-ref.html">git-symbolic-ref(1)</a>
1033 command.
1034 </p>
1035 </dd>
1036 <dt>
1037 <a id="def_tag"></a>tag
1038 </dt>
1039 <dd>
1041 A <a href="#def_ref">ref</a> pointing to a <a href="#def_tag_object">tag</a> or
1042 <a href="#def_commit_object">commit object</a>. In contrast to a <a href="#def_head">head</a>,
1043 a tag is not changed by a <a href="#def_commit">commit</a>. Tags (not
1044 <a href="#def_tag_object">tag objects</a>) are stored in <tt>$GIT_DIR/refs/tags/</tt>. A
1045 git tag has nothing to do with a Lisp tag (which would be
1046 called an <a href="#def_object_type">object type</a> in git's context). A
1047 tag is most typically used to mark a particular point in the
1048 commit ancestry <a href="#def_chain">chain</a>.
1049 </p>
1050 </dd>
1051 <dt>
1052 <a id="def_tag_object"></a>tag object
1053 </dt>
1054 <dd>
1056 An <a href="#def_object">object</a> containing a <a href="#def_ref">ref</a> pointing to
1057 another object, which can contain a message just like a
1058 <a href="#def_commit_object">commit object</a>. It can also contain a (PGP)
1059 signature, in which case it is called a "signed tag object".
1060 </p>
1061 </dd>
1062 <dt>
1063 <a id="def_topic_branch"></a>topic branch
1064 </dt>
1065 <dd>
1067 A regular git <a href="#def_branch">branch</a> that is used by a developer to
1068 identify a conceptual line of development. Since branches are very easy
1069 and inexpensive, it is often desirable to have several small branches
1070 that each contain very well defined concepts or small incremental yet
1071 related changes.
1072 </p>
1073 </dd>
1074 <dt>
1075 <a id="def_tracking_branch"></a>tracking branch
1076 </dt>
1077 <dd>
1079 A regular git <a href="#def_branch">branch</a> that is used to follow changes from
1080 another <a href="#def_repository">repository</a>. A tracking
1081 branch should not contain direct modifications or have local commits
1082 made to it. A tracking branch can usually be
1083 identified as the right-hand-side <a href="#def_ref">ref</a> in a Pull:
1084 <a href="#def_refspec">refspec</a>.
1085 </p>
1086 </dd>
1087 <dt>
1088 <a id="def_tree"></a>tree
1089 </dt>
1090 <dd>
1092 Either a <a href="#def_working_tree">working tree</a>, or a <a href="#def_tree_object">tree object</a> together with the dependent <a href="#def_blob_object">blob</a> and tree objects
1093 (i.e. a stored representation of a working tree).
1094 </p>
1095 </dd>
1096 <dt>
1097 <a id="def_tree_object"></a>tree object
1098 </dt>
1099 <dd>
1101 An <a href="#def_object">object</a> containing a list of file names and modes along
1102 with refs to the associated blob and/or tree objects. A
1103 <a href="#def_tree">tree</a> is equivalent to a <a href="#def_directory">directory</a>.
1104 </p>
1105 </dd>
1106 <dt>
1107 <a id="def_tree-ish"></a>tree-ish
1108 </dt>
1109 <dd>
1111 A <a href="#def_ref">ref</a> pointing to either a <a href="#def_commit_object">commit object</a>, a <a href="#def_tree_object">tree object</a>, or a <a href="#def_tag_object">tag object</a> pointing to a tag or commit or tree object.
1112 </p>
1113 </dd>
1114 <dt>
1115 <a id="def_unmerged_index"></a>unmerged index
1116 </dt>
1117 <dd>
1119 An <a href="#def_index">index</a> which contains unmerged
1120 <a href="#def_index_entry">index entries</a>.
1121 </p>
1122 </dd>
1123 <dt>
1124 <a id="def_unreachable_object"></a>unreachable object
1125 </dt>
1126 <dd>
1128 An <a href="#def_object">object</a> which is not <a href="#def_reachable">reachable</a> from a
1129 <a href="#def_branch">branch</a>, <a href="#def_tag">tag</a>, or any other reference.
1130 </p>
1131 </dd>
1132 <dt>
1133 <a id="def_upstream_branch"></a>upstream branch
1134 </dt>
1135 <dd>
1137 The default <a href="#def_branch">branch</a> that is merged into the branch in
1138 question (or the branch in question is rebased onto). It is configured
1139 via branch.&lt;name&gt;.remote and branch.&lt;name&gt;.merge. If the upstream branch
1140 of <em>A</em> is <em>origin/B</em> sometimes we say "<em>A</em> is tracking <em>origin/B</em>".
1141 </p>
1142 </dd>
1143 <dt>
1144 <a id="def_working_tree"></a>working tree
1145 </dt>
1146 <dd>
1148 The tree of actual checked out files. The working tree normally
1149 contains the contents of the <a href="#def_HEAD">HEAD</a> commit's tree,
1150 plus any local changes that you have made but not yet committed.
1151 </p>
1152 </dd>
1153 </dl></div>
1154 </div>
1155 <h2 id="_see_also">SEE ALSO</h2>
1156 <div class="sectionbody">
1157 <div class="para"><p><a href="gittutorial.html">gittutorial(7)</a>,
1158 <a href="gittutorial-2.html">gittutorial-2(7)</a>,
1159 <a href="gitcvs-migration.html">gitcvs-migration(7)</a>,
1160 <a href="everyday.html">Everyday git</a>,
1161 <a href="user-manual.html">The Git User's Manual</a></p></div>
1162 </div>
1163 <h2 id="_git">GIT</h2>
1164 <div class="sectionbody">
1165 <div class="para"><p>Part of the <a href="git.html">git(1)</a> suite.</p></div>
1166 </div>
1167 <div id="footer">
1168 <div id="footer-text">
1169 Last updated 2010-04-24 02:56:15 UTC
1170 </div>
1171 </div>
1172 </body>
1173 </html>