Autogenerated HTML docs for v2.45.0-rc1
[git-htmldocs.git] / gitglossary.html
blob9bd523c7ace1617c5955f331e612e683f65bd299
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
3 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
4 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
5 <head>
6 <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
7 <meta name="generator" content="AsciiDoc 10.2.0" />
8 <title>gitglossary(7)</title>
9 <style type="text/css">
10 /* Shared CSS for AsciiDoc xhtml11 and html5 backends */
12 /* Default font. */
13 body {
14 font-family: Georgia,serif;
17 /* Title font. */
18 h1, h2, h3, h4, h5, h6,
19 div.title, caption.title,
20 thead, p.table.header,
21 #toctitle,
22 #author, #revnumber, #revdate, #revremark,
23 #footer {
24 font-family: Arial,Helvetica,sans-serif;
27 body {
28 margin: 1em 5% 1em 5%;
31 a {
32 color: blue;
33 text-decoration: underline;
35 a:visited {
36 color: fuchsia;
39 em {
40 font-style: italic;
41 color: navy;
44 strong {
45 font-weight: bold;
46 color: #083194;
49 h1, h2, h3, h4, h5, h6 {
50 color: #527bbd;
51 margin-top: 1.2em;
52 margin-bottom: 0.5em;
53 line-height: 1.3;
56 h1, h2, h3 {
57 border-bottom: 2px solid silver;
59 h2 {
60 padding-top: 0.5em;
62 h3 {
63 float: left;
65 h3 + * {
66 clear: left;
68 h5 {
69 font-size: 1.0em;
72 div.sectionbody {
73 margin-left: 0;
76 hr {
77 border: 1px solid silver;
80 p {
81 margin-top: 0.5em;
82 margin-bottom: 0.5em;
85 ul, ol, li > p {
86 margin-top: 0;
88 ul > li { color: #aaa; }
89 ul > li > * { color: black; }
91 .monospaced, code, pre {
92 font-family: "Courier New", Courier, monospace;
93 font-size: inherit;
94 color: navy;
95 padding: 0;
96 margin: 0;
98 pre {
99 white-space: pre-wrap;
102 #author {
103 color: #527bbd;
104 font-weight: bold;
105 font-size: 1.1em;
107 #email {
109 #revnumber, #revdate, #revremark {
112 #footer {
113 font-size: small;
114 border-top: 2px solid silver;
115 padding-top: 0.5em;
116 margin-top: 4.0em;
118 #footer-text {
119 float: left;
120 padding-bottom: 0.5em;
122 #footer-badges {
123 float: right;
124 padding-bottom: 0.5em;
127 #preamble {
128 margin-top: 1.5em;
129 margin-bottom: 1.5em;
131 div.imageblock, div.exampleblock, div.verseblock,
132 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
133 div.admonitionblock {
134 margin-top: 1.0em;
135 margin-bottom: 1.5em;
137 div.admonitionblock {
138 margin-top: 2.0em;
139 margin-bottom: 2.0em;
140 margin-right: 10%;
141 color: #606060;
144 div.content { /* Block element content. */
145 padding: 0;
148 /* Block element titles. */
149 div.title, caption.title {
150 color: #527bbd;
151 font-weight: bold;
152 text-align: left;
153 margin-top: 1.0em;
154 margin-bottom: 0.5em;
156 div.title + * {
157 margin-top: 0;
160 td div.title:first-child {
161 margin-top: 0.0em;
163 div.content div.title:first-child {
164 margin-top: 0.0em;
166 div.content + div.title {
167 margin-top: 0.0em;
170 div.sidebarblock > div.content {
171 background: #ffffee;
172 border: 1px solid #dddddd;
173 border-left: 4px solid #f0f0f0;
174 padding: 0.5em;
177 div.listingblock > div.content {
178 border: 1px solid #dddddd;
179 border-left: 5px solid #f0f0f0;
180 background: #f8f8f8;
181 padding: 0.5em;
184 div.quoteblock, div.verseblock {
185 padding-left: 1.0em;
186 margin-left: 1.0em;
187 margin-right: 10%;
188 border-left: 5px solid #f0f0f0;
189 color: #888;
192 div.quoteblock > div.attribution {
193 padding-top: 0.5em;
194 text-align: right;
197 div.verseblock > pre.content {
198 font-family: inherit;
199 font-size: inherit;
201 div.verseblock > div.attribution {
202 padding-top: 0.75em;
203 text-align: left;
205 /* DEPRECATED: Pre version 8.2.7 verse style literal block. */
206 div.verseblock + div.attribution {
207 text-align: left;
210 div.admonitionblock .icon {
211 vertical-align: top;
212 font-size: 1.1em;
213 font-weight: bold;
214 text-decoration: underline;
215 color: #527bbd;
216 padding-right: 0.5em;
218 div.admonitionblock td.content {
219 padding-left: 0.5em;
220 border-left: 3px solid #dddddd;
223 div.exampleblock > div.content {
224 border-left: 3px solid #dddddd;
225 padding-left: 0.5em;
228 div.imageblock div.content { padding-left: 0; }
229 span.image img { border-style: none; vertical-align: text-bottom; }
230 a.image:visited { color: white; }
232 dl {
233 margin-top: 0.8em;
234 margin-bottom: 0.8em;
236 dt {
237 margin-top: 0.5em;
238 margin-bottom: 0;
239 font-style: normal;
240 color: navy;
242 dd > *:first-child {
243 margin-top: 0.1em;
246 ul, ol {
247 list-style-position: outside;
249 ol.arabic {
250 list-style-type: decimal;
252 ol.loweralpha {
253 list-style-type: lower-alpha;
255 ol.upperalpha {
256 list-style-type: upper-alpha;
258 ol.lowerroman {
259 list-style-type: lower-roman;
261 ol.upperroman {
262 list-style-type: upper-roman;
265 div.compact ul, div.compact ol,
266 div.compact p, div.compact p,
267 div.compact div, div.compact div {
268 margin-top: 0.1em;
269 margin-bottom: 0.1em;
272 tfoot {
273 font-weight: bold;
275 td > div.verse {
276 white-space: pre;
279 div.hdlist {
280 margin-top: 0.8em;
281 margin-bottom: 0.8em;
283 div.hdlist tr {
284 padding-bottom: 15px;
286 dt.hdlist1.strong, td.hdlist1.strong {
287 font-weight: bold;
289 td.hdlist1 {
290 vertical-align: top;
291 font-style: normal;
292 padding-right: 0.8em;
293 color: navy;
295 td.hdlist2 {
296 vertical-align: top;
298 div.hdlist.compact tr {
299 margin: 0;
300 padding-bottom: 0;
303 .comment {
304 background: yellow;
307 .footnote, .footnoteref {
308 font-size: 0.8em;
311 span.footnote, span.footnoteref {
312 vertical-align: super;
315 #footnotes {
316 margin: 20px 0 20px 0;
317 padding: 7px 0 0 0;
320 #footnotes div.footnote {
321 margin: 0 0 5px 0;
324 #footnotes hr {
325 border: none;
326 border-top: 1px solid silver;
327 height: 1px;
328 text-align: left;
329 margin-left: 0;
330 width: 20%;
331 min-width: 100px;
334 div.colist td {
335 padding-right: 0.5em;
336 padding-bottom: 0.3em;
337 vertical-align: top;
339 div.colist td img {
340 margin-top: 0.3em;
343 @media print {
344 #footer-badges { display: none; }
347 #toc {
348 margin-bottom: 2.5em;
351 #toctitle {
352 color: #527bbd;
353 font-size: 1.1em;
354 font-weight: bold;
355 margin-top: 1.0em;
356 margin-bottom: 0.1em;
359 div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
360 margin-top: 0;
361 margin-bottom: 0;
363 div.toclevel2 {
364 margin-left: 2em;
365 font-size: 0.9em;
367 div.toclevel3 {
368 margin-left: 4em;
369 font-size: 0.9em;
371 div.toclevel4 {
372 margin-left: 6em;
373 font-size: 0.9em;
376 span.aqua { color: aqua; }
377 span.black { color: black; }
378 span.blue { color: blue; }
379 span.fuchsia { color: fuchsia; }
380 span.gray { color: gray; }
381 span.green { color: green; }
382 span.lime { color: lime; }
383 span.maroon { color: maroon; }
384 span.navy { color: navy; }
385 span.olive { color: olive; }
386 span.purple { color: purple; }
387 span.red { color: red; }
388 span.silver { color: silver; }
389 span.teal { color: teal; }
390 span.white { color: white; }
391 span.yellow { color: yellow; }
393 span.aqua-background { background: aqua; }
394 span.black-background { background: black; }
395 span.blue-background { background: blue; }
396 span.fuchsia-background { background: fuchsia; }
397 span.gray-background { background: gray; }
398 span.green-background { background: green; }
399 span.lime-background { background: lime; }
400 span.maroon-background { background: maroon; }
401 span.navy-background { background: navy; }
402 span.olive-background { background: olive; }
403 span.purple-background { background: purple; }
404 span.red-background { background: red; }
405 span.silver-background { background: silver; }
406 span.teal-background { background: teal; }
407 span.white-background { background: white; }
408 span.yellow-background { background: yellow; }
410 span.big { font-size: 2em; }
411 span.small { font-size: 0.6em; }
413 span.underline { text-decoration: underline; }
414 span.overline { text-decoration: overline; }
415 span.line-through { text-decoration: line-through; }
417 div.unbreakable { page-break-inside: avoid; }
421 * xhtml11 specific
423 * */
425 div.tableblock {
426 margin-top: 1.0em;
427 margin-bottom: 1.5em;
429 div.tableblock > table {
430 border: 3px solid #527bbd;
432 thead, p.table.header {
433 font-weight: bold;
434 color: #527bbd;
436 p.table {
437 margin-top: 0;
439 /* Because the table frame attribute is overridden by CSS in most browsers. */
440 div.tableblock > table[frame="void"] {
441 border-style: none;
443 div.tableblock > table[frame="hsides"] {
444 border-left-style: none;
445 border-right-style: none;
447 div.tableblock > table[frame="vsides"] {
448 border-top-style: none;
449 border-bottom-style: none;
454 * html5 specific
456 * */
458 table.tableblock {
459 margin-top: 1.0em;
460 margin-bottom: 1.5em;
462 thead, p.tableblock.header {
463 font-weight: bold;
464 color: #527bbd;
466 p.tableblock {
467 margin-top: 0;
469 table.tableblock {
470 border-width: 3px;
471 border-spacing: 0px;
472 border-style: solid;
473 border-color: #527bbd;
474 border-collapse: collapse;
476 th.tableblock, td.tableblock {
477 border-width: 1px;
478 padding: 4px;
479 border-style: solid;
480 border-color: #527bbd;
483 table.tableblock.frame-topbot {
484 border-left-style: hidden;
485 border-right-style: hidden;
487 table.tableblock.frame-sides {
488 border-top-style: hidden;
489 border-bottom-style: hidden;
491 table.tableblock.frame-none {
492 border-style: hidden;
495 th.tableblock.halign-left, td.tableblock.halign-left {
496 text-align: left;
498 th.tableblock.halign-center, td.tableblock.halign-center {
499 text-align: center;
501 th.tableblock.halign-right, td.tableblock.halign-right {
502 text-align: right;
505 th.tableblock.valign-top, td.tableblock.valign-top {
506 vertical-align: top;
508 th.tableblock.valign-middle, td.tableblock.valign-middle {
509 vertical-align: middle;
511 th.tableblock.valign-bottom, td.tableblock.valign-bottom {
512 vertical-align: bottom;
517 * manpage specific
519 * */
521 body.manpage h1 {
522 padding-top: 0.5em;
523 padding-bottom: 0.5em;
524 border-top: 2px solid silver;
525 border-bottom: 2px solid silver;
527 body.manpage h2 {
528 border-style: none;
530 body.manpage div.sectionbody {
531 margin-left: 3em;
534 @media print {
535 body.manpage div#toc { display: none; }
539 </style>
540 <script type="text/javascript">
541 /*<![CDATA[*/
542 var asciidoc = { // Namespace.
544 /////////////////////////////////////////////////////////////////////
545 // Table Of Contents generator
546 /////////////////////////////////////////////////////////////////////
548 /* Author: Mihai Bazon, September 2002
549 * http://students.infoiasi.ro/~mishoo
551 * Table Of Content generator
552 * Version: 0.4
554 * Feel free to use this script under the terms of the GNU General Public
555 * License, as long as you do not remove or alter this notice.
558 /* modified by Troy D. Hanson, September 2006. License: GPL */
559 /* modified by Stuart Rackham, 2006, 2009. License: GPL */
561 // toclevels = 1..4.
562 toc: function (toclevels) {
564 function getText(el) {
565 var text = "";
566 for (var i = el.firstChild; i != null; i = i.nextSibling) {
567 if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
568 text += i.data;
569 else if (i.firstChild != null)
570 text += getText(i);
572 return text;
575 function TocEntry(el, text, toclevel) {
576 this.element = el;
577 this.text = text;
578 this.toclevel = toclevel;
581 function tocEntries(el, toclevels) {
582 var result = new Array;
583 var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
584 // Function that scans the DOM tree for header elements (the DOM2
585 // nodeIterator API would be a better technique but not supported by all
586 // browsers).
587 var iterate = function (el) {
588 for (var i = el.firstChild; i != null; i = i.nextSibling) {
589 if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
590 var mo = re.exec(i.tagName);
591 if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
592 result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
594 iterate(i);
598 iterate(el);
599 return result;
602 var toc = document.getElementById("toc");
603 if (!toc) {
604 return;
607 // Delete existing TOC entries in case we're reloading the TOC.
608 var tocEntriesToRemove = [];
609 var i;
610 for (i = 0; i < toc.childNodes.length; i++) {
611 var entry = toc.childNodes[i];
612 if (entry.nodeName.toLowerCase() == 'div'
613 && entry.getAttribute("class")
614 && entry.getAttribute("class").match(/^toclevel/))
615 tocEntriesToRemove.push(entry);
617 for (i = 0; i < tocEntriesToRemove.length; i++) {
618 toc.removeChild(tocEntriesToRemove[i]);
621 // Rebuild TOC entries.
622 var entries = tocEntries(document.getElementById("content"), toclevels);
623 for (var i = 0; i < entries.length; ++i) {
624 var entry = entries[i];
625 if (entry.element.id == "")
626 entry.element.id = "_toc_" + i;
627 var a = document.createElement("a");
628 a.href = "#" + entry.element.id;
629 a.appendChild(document.createTextNode(entry.text));
630 var div = document.createElement("div");
631 div.appendChild(a);
632 div.className = "toclevel" + entry.toclevel;
633 toc.appendChild(div);
635 if (entries.length == 0)
636 toc.parentNode.removeChild(toc);
640 /////////////////////////////////////////////////////////////////////
641 // Footnotes generator
642 /////////////////////////////////////////////////////////////////////
644 /* Based on footnote generation code from:
645 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
648 footnotes: function () {
649 // Delete existing footnote entries in case we're reloading the footnodes.
650 var i;
651 var noteholder = document.getElementById("footnotes");
652 if (!noteholder) {
653 return;
655 var entriesToRemove = [];
656 for (i = 0; i < noteholder.childNodes.length; i++) {
657 var entry = noteholder.childNodes[i];
658 if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
659 entriesToRemove.push(entry);
661 for (i = 0; i < entriesToRemove.length; i++) {
662 noteholder.removeChild(entriesToRemove[i]);
665 // Rebuild footnote entries.
666 var cont = document.getElementById("content");
667 var spans = cont.getElementsByTagName("span");
668 var refs = {};
669 var n = 0;
670 for (i=0; i<spans.length; i++) {
671 if (spans[i].className == "footnote") {
672 n++;
673 var note = spans[i].getAttribute("data-note");
674 if (!note) {
675 // Use [\s\S] in place of . so multi-line matches work.
676 // Because JavaScript has no s (dotall) regex flag.
677 note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
678 spans[i].innerHTML =
679 "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
680 "' title='View footnote' class='footnote'>" + n + "</a>]";
681 spans[i].setAttribute("data-note", note);
683 noteholder.innerHTML +=
684 "<div class='footnote' id='_footnote_" + n + "'>" +
685 "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
686 n + "</a>. " + note + "</div>";
687 var id =spans[i].getAttribute("id");
688 if (id != null) refs["#"+id] = n;
691 if (n == 0)
692 noteholder.parentNode.removeChild(noteholder);
693 else {
694 // Process footnoterefs.
695 for (i=0; i<spans.length; i++) {
696 if (spans[i].className == "footnoteref") {
697 var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
698 href = href.match(/#.*/)[0]; // Because IE return full URL.
699 n = refs[href];
700 spans[i].innerHTML =
701 "[<a href='#_footnote_" + n +
702 "' title='View footnote' class='footnote'>" + n + "</a>]";
708 install: function(toclevels) {
709 var timerId;
711 function reinstall() {
712 asciidoc.footnotes();
713 if (toclevels) {
714 asciidoc.toc(toclevels);
718 function reinstallAndRemoveTimer() {
719 clearInterval(timerId);
720 reinstall();
723 timerId = setInterval(reinstall, 500);
724 if (document.addEventListener)
725 document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
726 else
727 window.onload = reinstallAndRemoveTimer;
731 asciidoc.install();
732 /*]]>*/
733 </script>
734 </head>
735 <body class="manpage">
736 <div id="header">
737 <h1>
738 gitglossary(7) Manual Page
739 </h1>
740 <h2>NAME</h2>
741 <div class="sectionbody">
742 <p>gitglossary -
743 A Git Glossary
744 </p>
745 </div>
746 </div>
747 <div id="content">
748 <div class="sect1">
749 <h2 id="_synopsis">SYNOPSIS</h2>
750 <div class="sectionbody">
751 <div class="paragraph"><p>*</p></div>
752 </div>
753 </div>
754 <div class="sect1">
755 <h2 id="_description">DESCRIPTION</h2>
756 <div class="sectionbody">
757 <div class="dlist"><dl>
758 <dt class="hdlist1">
759 <a id="def_alternate_object_database"></a>alternate object database
760 </dt>
761 <dd>
763 Via the alternates mechanism, a <a href="#def_repository">repository</a>
764 can inherit part of its <a href="#def_object_database">object database</a>
765 from another object database, which is called an "alternate".
766 </p>
767 </dd>
768 <dt class="hdlist1">
769 <a id="def_bare_repository"></a>bare repository
770 </dt>
771 <dd>
773 A bare repository is normally an appropriately
774 named <a href="#def_directory">directory</a> with a <code>.git</code> suffix that does not
775 have a locally checked-out copy of any of the files under
776 revision control. That is, all of the Git
777 administrative and control files that would normally be present in the
778 hidden <code>.git</code> sub-directory are directly present in the
779 <code>repository.git</code> directory instead,
780 and no other files are present and checked out. Usually publishers of
781 public repositories make bare repositories available.
782 </p>
783 </dd>
784 <dt class="hdlist1">
785 <a id="def_blob_object"></a>blob object
786 </dt>
787 <dd>
789 Untyped <a href="#def_object">object</a>, e.g. the contents of a file.
790 </p>
791 </dd>
792 <dt class="hdlist1">
793 <a id="def_branch"></a>branch
794 </dt>
795 <dd>
797 A "branch" is a line of development. The most recent
798 <a href="#def_commit">commit</a> on a branch is referred to as the tip of
799 that branch. The tip of the branch is <a href="#def_ref">referenced</a> by a branch
800 <a href="#def_head">head</a>, which moves forward as additional development
801 is done on the branch. A single Git
802 <a href="#def_repository">repository</a> can track an arbitrary number of
803 branches, but your <a href="#def_working_tree">working tree</a> is
804 associated with just one of them (the "current" or "checked out"
805 branch), and <a href="#def_HEAD">HEAD</a> points to that branch.
806 </p>
807 </dd>
808 <dt class="hdlist1">
809 <a id="def_cache"></a>cache
810 </dt>
811 <dd>
813 Obsolete for: <a href="#def_index">index</a>.
814 </p>
815 </dd>
816 <dt class="hdlist1">
817 <a id="def_chain"></a>chain
818 </dt>
819 <dd>
821 A list of objects, where each <a href="#def_object">object</a> in the list contains
822 a reference to its successor (for example, the successor of a
823 <a href="#def_commit">commit</a> could be one of its <a href="#def_parent">parents</a>).
824 </p>
825 </dd>
826 <dt class="hdlist1">
827 <a id="def_changeset"></a>changeset
828 </dt>
829 <dd>
831 BitKeeper/cvsps speak for "<a href="#def_commit">commit</a>". Since Git does not
832 store changes, but states, it really does not make sense to use the term
833 "changesets" with Git.
834 </p>
835 </dd>
836 <dt class="hdlist1">
837 <a id="def_checkout"></a>checkout
838 </dt>
839 <dd>
841 The action of updating all or part of the
842 <a href="#def_working_tree">working tree</a> with a <a href="#def_tree_object">tree object</a>
843 or <a href="#def_blob_object">blob</a> from the
844 <a href="#def_object_database">object database</a>, and updating the
845 <a href="#def_index">index</a> and <a href="#def_HEAD">HEAD</a> if the whole working tree has
846 been pointed at a new <a href="#def_branch">branch</a>.
847 </p>
848 </dd>
849 <dt class="hdlist1">
850 <a id="def_cherry-picking"></a>cherry-picking
851 </dt>
852 <dd>
854 In <a href="#def_SCM">SCM</a> jargon, "cherry pick" means to choose a subset of
855 changes out of a series of changes (typically commits) and record them
856 as a new series of changes on top of a different codebase. In Git, this is
857 performed by the "git cherry-pick" command to extract the change introduced
858 by an existing <a href="#def_commit">commit</a> and to record it based on the tip
859 of the current <a href="#def_branch">branch</a> as a new commit.
860 </p>
861 </dd>
862 <dt class="hdlist1">
863 <a id="def_clean"></a>clean
864 </dt>
865 <dd>
867 A <a href="#def_working_tree">working tree</a> is clean, if it
868 corresponds to the <a href="#def_revision">revision</a> referenced by the current
869 <a href="#def_head">head</a>. Also see "<a href="#def_dirty">dirty</a>".
870 </p>
871 </dd>
872 <dt class="hdlist1">
873 <a id="def_commit"></a>commit
874 </dt>
875 <dd>
877 As a noun: A single point in the
878 Git history; the entire history of a project is represented as a
879 set of interrelated commits. The word "commit" is often
880 used by Git in the same places other revision control systems
881 use the words "revision" or "version". Also used as a short
882 hand for <a href="#def_commit_object">commit object</a>.
883 </p>
884 <div class="paragraph"><p>As a verb: The action of storing a new snapshot of the project&#8217;s
885 state in the Git history, by creating a new commit representing the current
886 state of the <a href="#def_index">index</a> and advancing <a href="#def_HEAD">HEAD</a>
887 to point at the new commit.</p></div>
888 </dd>
889 <dt class="hdlist1">
890 <a id="def_commit_graph_general"></a>commit graph concept, representations and usage
891 </dt>
892 <dd>
894 A synonym for the <a href="#def_DAG">DAG</a> structure formed by the commits
895 in the object database, <a href="#def_ref">referenced</a> by branch tips,
896 using their <a href="#def_chain">chain</a> of linked commits.
897 This structure is the definitive commit graph. The
898 graph can be represented in other ways, e.g. the
899 <a href="#def_commit_graph_file">"commit-graph" file</a>.
900 </p>
901 </dd>
902 <dt class="hdlist1">
903 <a id="def_commit_graph_file"></a>commit-graph file
904 </dt>
905 <dd>
907 The "commit-graph" (normally hyphenated) file is a supplemental
908 representation of the <a href="#def_commit_graph_general">commit graph</a>
909 which accelerates commit graph walks. The "commit-graph" file is
910 stored either in the .git/objects/info directory or in the info
911 directory of an alternate object database.
912 </p>
913 </dd>
914 <dt class="hdlist1">
915 <a id="def_commit_object"></a>commit object
916 </dt>
917 <dd>
919 An <a href="#def_object">object</a> which contains the information about a
920 particular <a href="#def_revision">revision</a>, such as <a href="#def_parent">parents</a>, committer,
921 author, date and the <a href="#def_tree_object">tree object</a> which corresponds
922 to the top <a href="#def_directory">directory</a> of the stored
923 revision.
924 </p>
925 </dd>
926 <dt class="hdlist1">
927 <a id="def_commit-ish"></a>commit-ish (also committish)
928 </dt>
929 <dd>
931 A <a href="#def_commit_object">commit object</a> or an <a href="#def_object">object</a> that
932 can be recursively <a href="#def_dereference">dereferenced</a> to a commit object.
933 The following are all commit-ishes:
934 a commit object,
935 a <a href="#def_tag_object">tag object</a> that points to a commit
936 object,
937 a tag object that points to a tag object that points to a
938 commit object,
939 etc.
940 </p>
941 </dd>
942 <dt class="hdlist1">
943 <a id="def_core_git"></a>core Git
944 </dt>
945 <dd>
947 Fundamental data structures and utilities of Git. Exposes only limited
948 source code management tools.
949 </p>
950 </dd>
951 <dt class="hdlist1">
952 <a id="def_DAG"></a>DAG
953 </dt>
954 <dd>
956 Directed acyclic graph. The <a href="#def_commit_object">commit objects</a> form a
957 directed acyclic graph, because they have parents (directed), and the
958 graph of commit objects is acyclic (there is no <a href="#def_chain">chain</a>
959 which begins and ends with the same <a href="#def_object">object</a>).
960 </p>
961 </dd>
962 <dt class="hdlist1">
963 <a id="def_dangling_object"></a>dangling object
964 </dt>
965 <dd>
967 An <a href="#def_unreachable_object">unreachable object</a> which is not
968 <a href="#def_reachable">reachable</a> even from other unreachable objects; a
969 dangling object has no references to it from any
970 reference or <a href="#def_object">object</a> in the <a href="#def_repository">repository</a>.
971 </p>
972 </dd>
973 <dt class="hdlist1">
974 <a id="def_dereference"></a>dereference
975 </dt>
976 <dd>
978 Referring to a <a href="#def_symref">symbolic ref</a>: the action of accessing the
979 <a href="#def_ref">reference</a> pointed at by a symbolic ref. Recursive
980 dereferencing involves repeating the aforementioned process on the
981 resulting ref until a non-symbolic reference is found.
982 </p>
983 <div class="paragraph"><p>Referring to a <a href="#def_tag_object">tag object</a>: the action of accessing the
984 <a href="#def_object">object</a> a tag points at. Tags are recursively dereferenced by
985 repeating the operation on the result object until the result has either a
986 specified <a href="#def_object_type">object type</a> (where applicable) or any non-"tag"
987 object type. A synonym for "recursive dereference" in the context of tags is
988 "<a href="#def_peel">peel</a>".</p></div>
989 <div class="paragraph"><p>Referring to a <a href="#def_commit_object">commit object</a>: the action of accessing
990 the commit&#8217;s tree object. Commits cannot be dereferenced recursively.</p></div>
991 <div class="paragraph"><p>Unless otherwise specified, "dereferencing" as it used in the context of Git
992 commands or protocols is implicitly recursive.</p></div>
993 </dd>
994 <dt class="hdlist1">
995 <a id="def_detached_HEAD"></a>detached HEAD
996 </dt>
997 <dd>
999 Normally the <a href="#def_HEAD">HEAD</a> stores the name of a
1000 <a href="#def_branch">branch</a>, and commands that operate on the
1001 history HEAD represents operate on the history leading to the
1002 tip of the branch the HEAD points at. However, Git also
1003 allows you to <a href="#def_checkout">check out</a> an arbitrary
1004 <a href="#def_commit">commit</a> that isn&#8217;t necessarily the tip of any
1005 particular branch. The HEAD in such a state is called
1006 "detached".
1007 </p>
1008 <div class="paragraph"><p>Note that commands that operate on the history of the current branch
1009 (e.g. <code>git commit</code> to build a new history on top of it) still work
1010 while the HEAD is detached. They update the HEAD to point at the tip
1011 of the updated history without affecting any branch. Commands that
1012 update or inquire information <em>about</em> the current branch (e.g. <code>git
1013 branch --set-upstream-to</code> that sets what remote-tracking branch the
1014 current branch integrates with) obviously do not work, as there is no
1015 (real) current branch to ask about in this state.</p></div>
1016 </dd>
1017 <dt class="hdlist1">
1018 <a id="def_directory"></a>directory
1019 </dt>
1020 <dd>
1022 The list you get with "ls" :-)
1023 </p>
1024 </dd>
1025 <dt class="hdlist1">
1026 <a id="def_dirty"></a>dirty
1027 </dt>
1028 <dd>
1030 A <a href="#def_working_tree">working tree</a> is said to be "dirty" if
1031 it contains modifications which have not been <a href="#def_commit">committed</a> to the current
1032 <a href="#def_branch">branch</a>.
1033 </p>
1034 </dd>
1035 <dt class="hdlist1">
1036 <a id="def_evil_merge"></a>evil merge
1037 </dt>
1038 <dd>
1040 An evil merge is a <a href="#def_merge">merge</a> that introduces changes that
1041 do not appear in any <a href="#def_parent">parent</a>.
1042 </p>
1043 </dd>
1044 <dt class="hdlist1">
1045 <a id="def_fast_forward"></a>fast-forward
1046 </dt>
1047 <dd>
1049 A fast-forward is a special type of <a href="#def_merge">merge</a> where you have a
1050 <a href="#def_revision">revision</a> and you are "merging" another
1051 <a href="#def_branch">branch</a>'s changes that happen to be a descendant of what
1052 you have. In such a case, you do not make a new <a href="#def_merge">merge</a>
1053 <a href="#def_commit">commit</a> but instead just update your branch to point at the same
1054 revision as the branch you are merging. This will happen frequently on a
1055 <a href="#def_remote_tracking_branch">remote-tracking branch</a> of a remote
1056 <a href="#def_repository">repository</a>.
1057 </p>
1058 </dd>
1059 <dt class="hdlist1">
1060 <a id="def_fetch"></a>fetch
1061 </dt>
1062 <dd>
1064 Fetching a <a href="#def_branch">branch</a> means to get the
1065 branch&#8217;s <a href="#def_head_ref">head ref</a> from a remote
1066 <a href="#def_repository">repository</a>, to find out which objects are
1067 missing from the local <a href="#def_object_database">object database</a>,
1068 and to get them, too. See also <a href="git-fetch.html">git-fetch(1)</a>.
1069 </p>
1070 </dd>
1071 <dt class="hdlist1">
1072 <a id="def_file_system"></a>file system
1073 </dt>
1074 <dd>
1076 Linus Torvalds originally designed Git to be a user space file system,
1077 i.e. the infrastructure to hold files and directories. That ensured the
1078 efficiency and speed of Git.
1079 </p>
1080 </dd>
1081 <dt class="hdlist1">
1082 <a id="def_git_archive"></a>Git archive
1083 </dt>
1084 <dd>
1086 Synonym for <a href="#def_repository">repository</a> (for arch people).
1087 </p>
1088 </dd>
1089 <dt class="hdlist1">
1090 <a id="def_gitfile"></a>gitfile
1091 </dt>
1092 <dd>
1094 A plain file <code>.git</code> at the root of a working tree that
1095 points at the directory that is the real repository.
1096 For proper use see <a href="git-worktree.html">git-worktree(1)</a> or <a href="git-submodule.html">git-submodule(1)</a>.
1097 For syntax see <a href="gitrepository-layout.html">gitrepository-layout(5)</a>.
1098 </p>
1099 </dd>
1100 <dt class="hdlist1">
1101 <a id="def_grafts"></a>grafts
1102 </dt>
1103 <dd>
1105 Grafts enable two otherwise different lines of development to be joined
1106 together by recording fake ancestry information for commits. This way
1107 you can make Git pretend the set of <a href="#def_parent">parents</a> a <a href="#def_commit">commit</a> has
1108 is different from what was recorded when the commit was
1109 created. Configured via the <code>.git/info/grafts</code> file.
1110 </p>
1111 <div class="paragraph"><p>Note that the grafts mechanism is outdated and can lead to problems
1112 transferring objects between repositories; see <a href="git-replace.html">git-replace(1)</a>
1113 for a more flexible and robust system to do the same thing.</p></div>
1114 </dd>
1115 <dt class="hdlist1">
1116 <a id="def_hash"></a>hash
1117 </dt>
1118 <dd>
1120 In Git&#8217;s context, synonym for <a href="#def_object_name">object name</a>.
1121 </p>
1122 </dd>
1123 <dt class="hdlist1">
1124 <a id="def_head"></a>head
1125 </dt>
1126 <dd>
1128 A <a href="#def_ref">named reference</a> to the <a href="#def_commit">commit</a> at the tip of a
1129 <a href="#def_branch">branch</a>. Heads are stored in a file in
1130 <code>$GIT_DIR/refs/heads/</code> directory, except when using packed refs. (See
1131 <a href="git-pack-refs.html">git-pack-refs(1)</a>.)
1132 </p>
1133 </dd>
1134 <dt class="hdlist1">
1135 <a id="def_HEAD"></a>HEAD
1136 </dt>
1137 <dd>
1139 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
1140 referred to by HEAD. HEAD is a reference to one of the
1141 <a href="#def_head">heads</a> in your repository, except when using a
1142 <a href="#def_detached_HEAD">detached HEAD</a>, in which case it directly
1143 references an arbitrary commit.
1144 </p>
1145 </dd>
1146 <dt class="hdlist1">
1147 <a id="def_head_ref"></a>head ref
1148 </dt>
1149 <dd>
1151 A synonym for <a href="#def_head">head</a>.
1152 </p>
1153 </dd>
1154 <dt class="hdlist1">
1155 <a id="def_hook"></a>hook
1156 </dt>
1157 <dd>
1159 During the normal execution of several Git commands, call-outs are made
1160 to optional scripts that allow a developer to add functionality or
1161 checking. Typically, the hooks allow for a command to be pre-verified
1162 and potentially aborted, and allow for a post-notification after the
1163 operation is done. The hook scripts are found in the
1164 <code>$GIT_DIR/hooks/</code> directory, and are enabled by simply
1165 removing the <code>.sample</code> suffix from the filename. In earlier versions
1166 of Git you had to make them executable.
1167 </p>
1168 </dd>
1169 <dt class="hdlist1">
1170 <a id="def_index"></a>index
1171 </dt>
1172 <dd>
1174 A collection of files with stat information, whose contents are stored
1175 as objects. The index is a stored version of your
1176 <a href="#def_working_tree">working tree</a>. Truth be told, it can also contain a second, and even
1177 a third version of a working tree, which are used
1178 when <a href="#def_merge">merging</a>.
1179 </p>
1180 </dd>
1181 <dt class="hdlist1">
1182 <a id="def_index_entry"></a>index entry
1183 </dt>
1184 <dd>
1186 The information regarding a particular file, stored in the
1187 <a href="#def_index">index</a>. An index entry can be unmerged, if a
1188 <a href="#def_merge">merge</a> was started, but not yet finished (i.e. if
1189 the index contains multiple versions of that file).
1190 </p>
1191 </dd>
1192 <dt class="hdlist1">
1193 <a id="def_master"></a>master
1194 </dt>
1195 <dd>
1197 The default development <a href="#def_branch">branch</a>. Whenever you
1198 create a Git <a href="#def_repository">repository</a>, a branch named
1199 "master" is created, and becomes the active branch. In most
1200 cases, this contains the local development, though that is
1201 purely by convention and is not required.
1202 </p>
1203 </dd>
1204 <dt class="hdlist1">
1205 <a id="def_merge"></a>merge
1206 </dt>
1207 <dd>
1209 As a verb: To bring the contents of another
1210 <a href="#def_branch">branch</a> (possibly from an external
1211 <a href="#def_repository">repository</a>) into the current branch. In the
1212 case where the merged-in branch is from a different repository,
1213 this is done by first <a href="#def_fetch">fetching</a> the remote branch
1214 and then merging the result into the current branch. This
1215 combination of fetch and merge operations is called a
1216 <a href="#def_pull">pull</a>. Merging is performed by an automatic process
1217 that identifies changes made since the branches diverged, and
1218 then applies all those changes together. In cases where changes
1219 conflict, manual intervention may be required to complete the
1220 merge.
1221 </p>
1222 <div class="paragraph"><p>As a noun: unless it is a <a href="#def_fast_forward">fast-forward</a>, a
1223 successful merge results in the creation of a new <a href="#def_commit">commit</a>
1224 representing the result of the merge, and having as
1225 <a href="#def_parent">parents</a> the tips of the merged <a href="#def_branch">branches</a>.
1226 This commit is referred to as a "merge commit", or sometimes just a
1227 "merge".</p></div>
1228 </dd>
1229 <dt class="hdlist1">
1230 <a id="def_object"></a>object
1231 </dt>
1232 <dd>
1234 The unit of storage in Git. It is uniquely identified by the
1235 <a href="#def_SHA1">SHA-1</a> of its contents. Consequently, an
1236 object cannot be changed.
1237 </p>
1238 </dd>
1239 <dt class="hdlist1">
1240 <a id="def_object_database"></a>object database
1241 </dt>
1242 <dd>
1244 Stores a set of "objects", and an individual <a href="#def_object">object</a> is
1245 identified by its <a href="#def_object_name">object name</a>. The objects usually
1246 live in <code>$GIT_DIR/objects/</code>.
1247 </p>
1248 </dd>
1249 <dt class="hdlist1">
1250 <a id="def_object_identifier"></a>object identifier (oid)
1251 </dt>
1252 <dd>
1254 Synonym for <a href="#def_object_name">object name</a>.
1255 </p>
1256 </dd>
1257 <dt class="hdlist1">
1258 <a id="def_object_name"></a>object name
1259 </dt>
1260 <dd>
1262 The unique identifier of an <a href="#def_object">object</a>. The
1263 object name is usually represented by a 40 character
1264 hexadecimal string. Also colloquially called <a href="#def_SHA1">SHA-1</a>.
1265 </p>
1266 </dd>
1267 <dt class="hdlist1">
1268 <a id="def_object_type"></a>object type
1269 </dt>
1270 <dd>
1272 One of the identifiers "<a href="#def_commit_object">commit</a>",
1273 "<a href="#def_tree_object">tree</a>", "<a href="#def_tag_object">tag</a>" or
1274 "<a href="#def_blob_object">blob</a>" describing the type of an
1275 <a href="#def_object">object</a>.
1276 </p>
1277 </dd>
1278 <dt class="hdlist1">
1279 <a id="def_octopus"></a>octopus
1280 </dt>
1281 <dd>
1283 To <a href="#def_merge">merge</a> more than two <a href="#def_branch">branches</a>.
1284 </p>
1285 </dd>
1286 <dt class="hdlist1">
1287 <a id="def_orphan"></a>orphan
1288 </dt>
1289 <dd>
1291 The act of getting on a <a href="#def_branch">branch</a> that does not
1292 exist yet (i.e., an <a href="#def_unborn">unborn</a> branch). After
1293 such an operation, the commit first created becomes a commit
1294 without a parent, starting a new history.
1295 </p>
1296 </dd>
1297 <dt class="hdlist1">
1298 <a id="def_origin"></a>origin
1299 </dt>
1300 <dd>
1302 The default upstream <a href="#def_repository">repository</a>. Most projects have
1303 at least one upstream project which they track. By default
1304 <em>origin</em> is used for that purpose. New upstream updates
1305 will be fetched into <a href="#def_remote_tracking_branch">remote-tracking branches</a> named
1306 origin/name-of-upstream-branch, which you can see using
1307 <code>git branch -r</code>.
1308 </p>
1309 </dd>
1310 <dt class="hdlist1">
1311 <a id="def_overlay"></a>overlay
1312 </dt>
1313 <dd>
1315 Only update and add files to the working directory, but don&#8217;t
1316 delete them, similar to how <em>cp -R</em> would update the contents
1317 in the destination directory. This is the default mode in a
1318 <a href="#def_checkout">checkout</a> when checking out files from the
1319 <a href="#def_index">index</a> or a <a href="#def_tree-ish">tree-ish</a>. In
1320 contrast, no-overlay mode also deletes tracked files not
1321 present in the source, similar to <em>rsync --delete</em>.
1322 </p>
1323 </dd>
1324 <dt class="hdlist1">
1325 <a id="def_pack"></a>pack
1326 </dt>
1327 <dd>
1329 A set of objects which have been compressed into one file (to save space
1330 or to transmit them efficiently).
1331 </p>
1332 </dd>
1333 <dt class="hdlist1">
1334 <a id="def_pack_index"></a>pack index
1335 </dt>
1336 <dd>
1338 The list of identifiers, and other information, of the objects in a
1339 <a href="#def_pack">pack</a>, to assist in efficiently accessing the contents of a
1340 pack.
1341 </p>
1342 </dd>
1343 <dt class="hdlist1">
1344 <a id="def_pathspec"></a>pathspec
1345 </dt>
1346 <dd>
1348 Pattern used to limit paths in Git commands.
1349 </p>
1350 <div class="paragraph"><p>Pathspecs are used on the command line of "git ls-files", "git
1351 ls-tree", "git add", "git grep", "git diff", "git checkout",
1352 and many other commands to
1353 limit the scope of operations to some subset of the tree or
1354 working tree. See the documentation of each command for whether
1355 paths are relative to the current directory or toplevel. The
1356 pathspec syntax is as follows:</p></div>
1357 <div class="openblock">
1358 <div class="content">
1359 <div class="ulist"><ul>
1360 <li>
1362 any path matches itself
1363 </p>
1364 </li>
1365 <li>
1367 the pathspec up to the last slash represents a
1368 directory prefix. The scope of that pathspec is
1369 limited to that subtree.
1370 </p>
1371 </li>
1372 <li>
1374 the rest of the pathspec is a pattern for the remainder
1375 of the pathname. Paths relative to the directory
1376 prefix will be matched against that pattern using fnmatch(3);
1377 in particular, <em>*</em> and <em>?</em> <em>can</em> match directory separators.
1378 </p>
1379 </li>
1380 </ul></div>
1381 </div></div>
1382 <div class="paragraph"><p>For example, Documentation/*.jpg will match all .jpg files
1383 in the Documentation subtree,
1384 including Documentation/chapter_1/figure_1.jpg.</p></div>
1385 <div class="paragraph"><p>A pathspec that begins with a colon <code>:</code> has special meaning. In the
1386 short form, the leading colon <code>:</code> is followed by zero or more "magic
1387 signature" letters (which optionally is terminated by another colon <code>:</code>),
1388 and the remainder is the pattern to match against the path.
1389 The "magic signature" consists of ASCII symbols that are neither
1390 alphanumeric, glob, regex special characters nor colon.
1391 The optional colon that terminates the "magic signature" can be
1392 omitted if the pattern begins with a character that does not belong to
1393 "magic signature" symbol set and is not a colon.</p></div>
1394 <div class="paragraph"><p>In the long form, the leading colon <code>:</code> is followed by an open
1395 parenthesis <code>(</code>, a comma-separated list of zero or more "magic words",
1396 and a close parentheses <code>)</code>, and the remainder is the pattern to match
1397 against the path.</p></div>
1398 <div class="paragraph"><p>A pathspec with only a colon means "there is no pathspec". This form
1399 should not be combined with other pathspec.</p></div>
1400 <div class="openblock">
1401 <div class="content">
1402 <div class="dlist"><dl>
1403 <dt class="hdlist1">
1405 </dt>
1406 <dd>
1408 The magic word <code>top</code> (magic signature: <code>/</code>) makes the pattern
1409 match from the root of the working tree, even when you are
1410 running the command from inside a subdirectory.
1411 </p>
1412 </dd>
1413 <dt class="hdlist1">
1414 literal
1415 </dt>
1416 <dd>
1418 Wildcards in the pattern such as <code>*</code> or <code>?</code> are treated
1419 as literal characters.
1420 </p>
1421 </dd>
1422 <dt class="hdlist1">
1423 icase
1424 </dt>
1425 <dd>
1427 Case insensitive match.
1428 </p>
1429 </dd>
1430 <dt class="hdlist1">
1431 glob
1432 </dt>
1433 <dd>
1435 Git treats the pattern as a shell glob suitable for
1436 consumption by fnmatch(3) with the FNM_PATHNAME flag:
1437 wildcards in the pattern will not match a / in the pathname.
1438 For example, "Documentation/&#42;.html" matches
1439 "Documentation/git.html" but not "Documentation/ppc/ppc.html"
1440 or "tools/perf/Documentation/perf.html".
1441 </p>
1442 <div class="paragraph"><p>Two consecutive asterisks ("<code>**</code>") in patterns matched against
1443 full pathname may have special meaning:</p></div>
1444 <div class="ulist"><ul>
1445 <li>
1447 A leading "<code>**</code>" followed by a slash means match in all
1448 directories. For example, "<code>**/foo</code>" matches file or directory
1449 "<code>foo</code>" anywhere, the same as pattern "<code>foo</code>". "<code>**/foo/bar</code>"
1450 matches file or directory "<code>bar</code>" anywhere that is directly
1451 under directory "<code>foo</code>".
1452 </p>
1453 </li>
1454 <li>
1456 A trailing "<code>/**</code>" matches everything inside. For example,
1457 "<code>abc/**</code>" matches all files inside directory "abc", relative
1458 to the location of the <code>.gitignore</code> file, with infinite depth.
1459 </p>
1460 </li>
1461 <li>
1463 A slash followed by two consecutive asterisks then a slash
1464 matches zero or more directories. For example, "<code>a/**/b</code>"
1465 matches "<code>a/b</code>", "<code>a/x/b</code>", "<code>a/x/y/b</code>" and so on.
1466 </p>
1467 </li>
1468 <li>
1470 Other consecutive asterisks are considered invalid.
1471 </p>
1472 <div class="paragraph"><p>Glob magic is incompatible with literal magic.</p></div>
1473 </li>
1474 </ul></div>
1475 </dd>
1476 <dt class="hdlist1">
1477 attr
1478 </dt>
1479 <dd>
1481 After <code>attr:</code> comes a space separated list of "attribute
1482 requirements", all of which must be met in order for the
1483 path to be considered a match; this is in addition to the
1484 usual non-magic pathspec pattern matching.
1485 See <a href="gitattributes.html">gitattributes(5)</a>.
1486 </p>
1487 <div class="paragraph"><p>Each of the attribute requirements for the path takes one of
1488 these forms:</p></div>
1489 <div class="ulist"><ul>
1490 <li>
1492 "<code>ATTR</code>" requires that the attribute <code>ATTR</code> be set.
1493 </p>
1494 </li>
1495 <li>
1497 "<code>-ATTR</code>" requires that the attribute <code>ATTR</code> be unset.
1498 </p>
1499 </li>
1500 <li>
1502 "<code>ATTR=VALUE</code>" requires that the attribute <code>ATTR</code> be
1503 set to the string <code>VALUE</code>.
1504 </p>
1505 </li>
1506 <li>
1508 "<code>!ATTR</code>" requires that the attribute <code>ATTR</code> be
1509 unspecified.
1510 </p>
1511 <div class="paragraph"><p>Note that when matching against a tree object, attributes are still
1512 obtained from working tree, not from the given tree object.</p></div>
1513 </li>
1514 </ul></div>
1515 </dd>
1516 <dt class="hdlist1">
1517 exclude
1518 </dt>
1519 <dd>
1521 After a path matches any non-exclude pathspec, it will be run
1522 through all exclude pathspecs (magic signature: <code>!</code> or its
1523 synonym <code>^</code>). If it matches, the path is ignored. When there
1524 is no non-exclude pathspec, the exclusion is applied to the
1525 result set as if invoked without any pathspec.
1526 </p>
1527 </dd>
1528 </dl></div>
1529 </div></div>
1530 </dd>
1531 <dt class="hdlist1">
1532 <a id="def_parent"></a>parent
1533 </dt>
1534 <dd>
1536 A <a href="#def_commit_object">commit object</a> contains a (possibly empty) list
1537 of the logical predecessor(s) in the line of development, i.e. its
1538 parents.
1539 </p>
1540 </dd>
1541 <dt class="hdlist1">
1542 <a id="def_peel"></a>peel
1543 </dt>
1544 <dd>
1546 The action of recursively <a href="#def_dereference">dereferencing</a> a
1547 <a href="#def_tag_object">tag object</a>.
1548 </p>
1549 </dd>
1550 <dt class="hdlist1">
1551 <a id="def_pickaxe"></a>pickaxe
1552 </dt>
1553 <dd>
1555 The term <a href="#def_pickaxe">pickaxe</a> refers to an option to the diffcore
1556 routines that help select changes that add or delete a given text
1557 string. With the <code>--pickaxe-all</code> option, it can be used to view the full
1558 <a href="#def_changeset">changeset</a> that introduced or removed, say, a
1559 particular line of text. See <a href="git-diff.html">git-diff(1)</a>.
1560 </p>
1561 </dd>
1562 <dt class="hdlist1">
1563 <a id="def_plumbing"></a>plumbing
1564 </dt>
1565 <dd>
1567 Cute name for <a href="#def_core_git">core Git</a>.
1568 </p>
1569 </dd>
1570 <dt class="hdlist1">
1571 <a id="def_porcelain"></a>porcelain
1572 </dt>
1573 <dd>
1575 Cute name for programs and program suites depending on
1576 <a href="#def_core_git">core Git</a>, presenting a high level access to
1577 core Git. Porcelains expose more of a <a href="#def_SCM">SCM</a>
1578 interface than the <a href="#def_plumbing">plumbing</a>.
1579 </p>
1580 </dd>
1581 <dt class="hdlist1">
1582 <a id="def_per_worktree_ref"></a>per-worktree ref
1583 </dt>
1584 <dd>
1586 Refs that are per-<a href="#def_worktree">worktree</a>, rather than
1587 global. This is presently only <a href="#def_HEAD">HEAD</a> and any refs
1588 that start with <code>refs/bisect/</code>, but might later include other
1589 unusual refs.
1590 </p>
1591 </dd>
1592 <dt class="hdlist1">
1593 <a id="def_pseudoref"></a>pseudoref
1594 </dt>
1595 <dd>
1597 Pseudorefs are a class of files under <code>$GIT_DIR</code> which behave
1598 like refs for the purposes of rev-parse, but which are treated
1599 specially by git. Pseudorefs both have names that are all-caps,
1600 and always start with a line consisting of a
1601 <a href="#def_SHA1">SHA-1</a> followed by whitespace. So, HEAD is not a
1602 pseudoref, because it is sometimes a symbolic ref. They might
1603 optionally contain some additional data. <code>MERGE_HEAD</code> and
1604 <code>CHERRY_PICK_HEAD</code> are examples. Unlike
1605 <a href="#def_per_worktree_ref">per-worktree refs</a>, these files cannot
1606 be symbolic refs, and never have reflogs. They also cannot be
1607 updated through the normal ref update machinery. Instead,
1608 they are updated by directly writing to the files. However,
1609 they can be read as if they were refs, so <code>git rev-parse
1610 MERGE_HEAD</code> will work.
1611 </p>
1612 </dd>
1613 <dt class="hdlist1">
1614 <a id="def_pull"></a>pull
1615 </dt>
1616 <dd>
1618 Pulling a <a href="#def_branch">branch</a> means to <a href="#def_fetch">fetch</a> it and
1619 <a href="#def_merge">merge</a> it. See also <a href="git-pull.html">git-pull(1)</a>.
1620 </p>
1621 </dd>
1622 <dt class="hdlist1">
1623 <a id="def_push"></a>push
1624 </dt>
1625 <dd>
1627 Pushing a <a href="#def_branch">branch</a> means to get the branch&#8217;s
1628 <a href="#def_head_ref">head ref</a> from a remote <a href="#def_repository">repository</a>,
1629 find out if it is an ancestor to the branch&#8217;s local
1630 head ref, and in that case, putting all
1631 objects, which are <a href="#def_reachable">reachable</a> from the local
1632 head ref, and which are missing from the remote
1633 repository, into the remote
1634 <a href="#def_object_database">object database</a>, and updating the remote
1635 head ref. If the remote <a href="#def_head">head</a> is not an
1636 ancestor to the local head, the push fails.
1637 </p>
1638 </dd>
1639 <dt class="hdlist1">
1640 <a id="def_reachable"></a>reachable
1641 </dt>
1642 <dd>
1644 All of the ancestors of a given <a href="#def_commit">commit</a> are said to be
1645 "reachable" from that commit. More
1646 generally, one <a href="#def_object">object</a> is reachable from
1647 another if we can reach the one from the other by a <a href="#def_chain">chain</a>
1648 that follows <a href="#def_tag">tags</a> to whatever they tag,
1649 <a href="#def_commit_object">commits</a> to their parents or trees, and
1650 <a href="#def_tree_object">trees</a> to the trees or <a href="#def_blob_object">blobs</a>
1651 that they contain.
1652 </p>
1653 </dd>
1654 <dt class="hdlist1">
1655 <a id="def_reachability_bitmap"></a>reachability bitmaps
1656 </dt>
1657 <dd>
1659 Reachability bitmaps store information about the
1660 <a href="#def_reachable">reachability</a> of a selected set of commits in
1661 a packfile, or a multi-pack index (MIDX), to speed up object search.
1662 The bitmaps are stored in a ".bitmap" file. A repository may have at
1663 most one bitmap file in use. The bitmap file may belong to either one
1664 pack, or the repository&#8217;s multi-pack index (if it exists).
1665 </p>
1666 </dd>
1667 <dt class="hdlist1">
1668 <a id="def_rebase"></a>rebase
1669 </dt>
1670 <dd>
1672 To reapply a series of changes from a <a href="#def_branch">branch</a> to a
1673 different base, and reset the <a href="#def_head">head</a> of that branch
1674 to the result.
1675 </p>
1676 </dd>
1677 <dt class="hdlist1">
1678 <a id="def_ref"></a>ref
1679 </dt>
1680 <dd>
1682 A name that begins with <code>refs/</code> (e.g. <code>refs/heads/master</code>)
1683 that points to an <a href="#def_object_name">object name</a> or another
1684 ref (the latter is called a <a href="#def_symref">symbolic ref</a>).
1685 For convenience, a ref can sometimes be abbreviated when used
1686 as an argument to a Git command; see <a href="gitrevisions.html">gitrevisions(7)</a>
1687 for details.
1688 Refs are stored in the <a href="#def_repository">repository</a>.
1689 </p>
1690 <div class="paragraph"><p>The ref namespace is hierarchical.
1691 Different subhierarchies are used for different purposes (e.g. the
1692 <code>refs/heads/</code> hierarchy is used to represent local branches).</p></div>
1693 <div class="paragraph"><p>There are a few special-purpose refs that do not begin with <code>refs/</code>.
1694 The most notable example is <code>HEAD</code>.</p></div>
1695 </dd>
1696 <dt class="hdlist1">
1697 <a id="def_reflog"></a>reflog
1698 </dt>
1699 <dd>
1701 A reflog shows the local "history" of a ref. In other words,
1702 it can tell you what the 3rd last revision in <em>this</em> repository
1703 was, and what was the current state in <em>this</em> repository,
1704 yesterday 9:14pm. See <a href="git-reflog.html">git-reflog(1)</a> for details.
1705 </p>
1706 </dd>
1707 <dt class="hdlist1">
1708 <a id="def_refspec"></a>refspec
1709 </dt>
1710 <dd>
1712 A "refspec" is used by <a href="#def_fetch">fetch</a> and
1713 <a href="#def_push">push</a> to describe the mapping between remote
1714 <a href="#def_ref">ref</a> and local ref.
1715 </p>
1716 </dd>
1717 <dt class="hdlist1">
1718 <a id="def_remote"></a>remote repository
1719 </dt>
1720 <dd>
1722 A <a href="#def_repository">repository</a> which is used to track the same
1723 project but resides somewhere else. To communicate with remotes,
1724 see <a href="#def_fetch">fetch</a> or <a href="#def_push">push</a>.
1725 </p>
1726 </dd>
1727 <dt class="hdlist1">
1728 <a id="def_remote_tracking_branch"></a>remote-tracking branch
1729 </dt>
1730 <dd>
1732 A <a href="#def_ref">ref</a> that is used to follow changes from another
1733 <a href="#def_repository">repository</a>. It typically looks like
1734 <em>refs/remotes/foo/bar</em> (indicating that it tracks a branch named
1735 <em>bar</em> in a remote named <em>foo</em>), and matches the right-hand-side of
1736 a configured fetch <a href="#def_refspec">refspec</a>. A remote-tracking
1737 branch should not contain direct modifications or have local
1738 commits made to it.
1739 </p>
1740 </dd>
1741 <dt class="hdlist1">
1742 <a id="def_repository"></a>repository
1743 </dt>
1744 <dd>
1746 A collection of <a href="#def_ref">refs</a> together with an
1747 <a href="#def_object_database">object database</a> containing all objects
1748 which are <a href="#def_reachable">reachable</a> from the refs, possibly
1749 accompanied by meta data from one or more <a href="#def_porcelain">porcelains</a>. A
1750 repository can share an object database with other repositories
1751 via <a href="#def_alternate_object_database">alternates mechanism</a>.
1752 </p>
1753 </dd>
1754 <dt class="hdlist1">
1755 <a id="def_resolve"></a>resolve
1756 </dt>
1757 <dd>
1759 The action of fixing up manually what a failed automatic
1760 <a href="#def_merge">merge</a> left behind.
1761 </p>
1762 </dd>
1763 <dt class="hdlist1">
1764 <a id="def_revision"></a>revision
1765 </dt>
1766 <dd>
1768 Synonym for <a href="#def_commit">commit</a> (the noun).
1769 </p>
1770 </dd>
1771 <dt class="hdlist1">
1772 <a id="def_rewind"></a>rewind
1773 </dt>
1774 <dd>
1776 To throw away part of the development, i.e. to assign the
1777 <a href="#def_head">head</a> to an earlier <a href="#def_revision">revision</a>.
1778 </p>
1779 </dd>
1780 <dt class="hdlist1">
1781 <a id="def_SCM"></a>SCM
1782 </dt>
1783 <dd>
1785 Source code management (tool).
1786 </p>
1787 </dd>
1788 <dt class="hdlist1">
1789 <a id="def_SHA1"></a>SHA-1
1790 </dt>
1791 <dd>
1793 "Secure Hash Algorithm 1"; a cryptographic hash function.
1794 In the context of Git used as a synonym for <a href="#def_object_name">object name</a>.
1795 </p>
1796 </dd>
1797 <dt class="hdlist1">
1798 <a id="def_shallow_clone"></a>shallow clone
1799 </dt>
1800 <dd>
1802 Mostly a synonym to <a href="#def_shallow_repository">shallow repository</a>
1803 but the phrase makes it more explicit that it was created by
1804 running <code>git clone --depth=...</code> command.
1805 </p>
1806 </dd>
1807 <dt class="hdlist1">
1808 <a id="def_shallow_repository"></a>shallow repository
1809 </dt>
1810 <dd>
1812 A shallow <a href="#def_repository">repository</a> has an incomplete
1813 history some of whose <a href="#def_commit">commits</a> have <a href="#def_parent">parents</a> cauterized away (in other
1814 words, Git is told to pretend that these commits do not have the
1815 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
1816 recent history of a project even though the real history recorded in the
1817 upstream is much larger. A shallow repository
1818 is created by giving the <code>--depth</code> option to <a href="git-clone.html">git-clone(1)</a>, and
1819 its history can be later deepened with <a href="git-fetch.html">git-fetch(1)</a>.
1820 </p>
1821 </dd>
1822 <dt class="hdlist1">
1823 <a id="def_stash"></a>stash entry
1824 </dt>
1825 <dd>
1827 An <a href="#def_object">object</a> used to temporarily store the contents of a
1828 <a href="#def_dirty">dirty</a> working directory and the index for future reuse.
1829 </p>
1830 </dd>
1831 <dt class="hdlist1">
1832 <a id="def_special_ref"></a>special ref
1833 </dt>
1834 <dd>
1836 A ref that has different semantics than normal refs. These refs can be
1837 accessed via normal Git commands but may not behave the same as a
1838 normal ref in some cases.
1839 </p>
1840 <div class="paragraph"><p>The following special refs are known to Git:</p></div>
1841 <div class="ulist"><ul>
1842 <li>
1844 "<code>FETCH_HEAD</code>" is written by <a href="git-fetch.html">git-fetch(1)</a> or <a href="git-pull.html">git-pull(1)</a>. It
1845 may refer to multiple object IDs. Each object ID is annotated with metadata
1846 indicating where it was fetched from and its fetch status.
1847 </p>
1848 </li>
1849 <li>
1851 "<code>MERGE_HEAD</code>" is written by <a href="git-merge.html">git-merge(1)</a> when resolving merge
1852 conflicts. It contains all commit IDs which are being merged.
1853 </p>
1854 </li>
1855 </ul></div>
1856 </dd>
1857 <dt class="hdlist1">
1858 <a id="def_submodule"></a>submodule
1859 </dt>
1860 <dd>
1862 A <a href="#def_repository">repository</a> that holds the history of a
1863 separate project inside another repository (the latter of
1864 which is called <a href="#def_superproject">superproject</a>).
1865 </p>
1866 </dd>
1867 <dt class="hdlist1">
1868 <a id="def_superproject"></a>superproject
1869 </dt>
1870 <dd>
1872 A <a href="#def_repository">repository</a> that references repositories
1873 of other projects in its working tree as <a href="#def_submodule">submodules</a>.
1874 The superproject knows about the names of (but does not hold
1875 copies of) commit objects of the contained submodules.
1876 </p>
1877 </dd>
1878 <dt class="hdlist1">
1879 <a id="def_symref"></a>symref
1880 </dt>
1881 <dd>
1883 Symbolic reference: instead of containing the <a href="#def_SHA1">SHA-1</a> id
1884 itself, it is of the format <em>ref: refs/some/thing</em> and when referenced,
1885 it recursively <a href="#def_dereference">dereferences</a> to this reference.
1886 <em><a href="#def_HEAD">HEAD</a></em> is a prime example of a symref. Symbolic references
1887 are manipulated with the <a href="git-symbolic-ref.html">git-symbolic-ref(1)</a> command.
1888 </p>
1889 </dd>
1890 <dt class="hdlist1">
1891 <a id="def_tag"></a>tag
1892 </dt>
1893 <dd>
1895 A <a href="#def_ref">ref</a> under <code>refs/tags/</code> namespace that points to an
1896 object of an arbitrary type (typically a tag points to either a
1897 <a href="#def_tag_object">tag</a> or a <a href="#def_commit_object">commit object</a>).
1898 In contrast to a <a href="#def_head">head</a>, a tag is not updated by
1899 the <code>commit</code> command. A Git tag has nothing to do with a Lisp
1900 tag (which would be called an <a href="#def_object_type">object type</a>
1901 in Git&#8217;s context). A tag is most typically used to mark a particular
1902 point in the commit ancestry <a href="#def_chain">chain</a>.
1903 </p>
1904 </dd>
1905 <dt class="hdlist1">
1906 <a id="def_tag_object"></a>tag object
1907 </dt>
1908 <dd>
1910 An <a href="#def_object">object</a> containing a <a href="#def_ref">ref</a> pointing to
1911 another object, which can contain a message just like a
1912 <a href="#def_commit_object">commit object</a>. It can also contain a (PGP)
1913 signature, in which case it is called a "signed tag object".
1914 </p>
1915 </dd>
1916 <dt class="hdlist1">
1917 <a id="def_topic_branch"></a>topic branch
1918 </dt>
1919 <dd>
1921 A regular Git <a href="#def_branch">branch</a> that is used by a developer to
1922 identify a conceptual line of development. Since branches are very easy
1923 and inexpensive, it is often desirable to have several small branches
1924 that each contain very well defined concepts or small incremental yet
1925 related changes.
1926 </p>
1927 </dd>
1928 <dt class="hdlist1">
1929 <a id="def_tree"></a>tree
1930 </dt>
1931 <dd>
1933 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
1934 (i.e. a stored representation of a working tree).
1935 </p>
1936 </dd>
1937 <dt class="hdlist1">
1938 <a id="def_tree_object"></a>tree object
1939 </dt>
1940 <dd>
1942 An <a href="#def_object">object</a> containing a list of file names and modes along
1943 with refs to the associated blob and/or tree objects. A
1944 <a href="#def_tree">tree</a> is equivalent to a <a href="#def_directory">directory</a>.
1945 </p>
1946 </dd>
1947 <dt class="hdlist1">
1948 <a id="def_tree-ish"></a>tree-ish (also treeish)
1949 </dt>
1950 <dd>
1952 A <a href="#def_tree_object">tree object</a> or an <a href="#def_object">object</a> that can
1953 be recursively <a href="#def_dereference">dereferenced</a> to a tree object.
1954 Dereferencing a <a href="#def_commit_object">commit object</a> yields the tree
1955 object corresponding to the <a href="#def_revision">revision</a>'s top
1956 <a href="#def_directory">directory</a>.
1957 The following are all tree-ishes:
1958 a <a href="#def_commit-ish">commit-ish</a>,
1959 a tree object,
1960 a <a href="#def_tag_object">tag object</a> that points to a tree object,
1961 a tag object that points to a tag object that points to a tree
1962 object,
1963 etc.
1964 </p>
1965 </dd>
1966 <dt class="hdlist1">
1967 <a id="def_unborn"></a>unborn
1968 </dt>
1969 <dd>
1971 The <a href="#def_HEAD">HEAD</a> can point at a <a href="#def_branch">branch</a>
1972 that does not yet exist and that does not have any commit on
1973 it yet, and such a branch is called an unborn branch. The
1974 most typical way users encounter an unborn branch is by
1975 creating a repository anew without cloning from elsewhere.
1976 The HEAD would point at the <em>main</em> (or <em>master</em>, depending
1977 on your configuration) branch that is yet to be born. Also
1978 some operations can get you on an unborn branch with their
1979 <a href="#def_orphan">orphan</a> option.
1980 </p>
1981 </dd>
1982 <dt class="hdlist1">
1983 <a id="def_unmerged_index"></a>unmerged index
1984 </dt>
1985 <dd>
1987 An <a href="#def_index">index</a> which contains unmerged
1988 <a href="#def_index_entry">index entries</a>.
1989 </p>
1990 </dd>
1991 <dt class="hdlist1">
1992 <a id="def_unreachable_object"></a>unreachable object
1993 </dt>
1994 <dd>
1996 An <a href="#def_object">object</a> which is not <a href="#def_reachable">reachable</a> from a
1997 <a href="#def_branch">branch</a>, <a href="#def_tag">tag</a>, or any other reference.
1998 </p>
1999 </dd>
2000 <dt class="hdlist1">
2001 <a id="def_upstream_branch"></a>upstream branch
2002 </dt>
2003 <dd>
2005 The default <a href="#def_branch">branch</a> that is merged into the branch in
2006 question (or the branch in question is rebased onto). It is configured
2007 via branch.&lt;name&gt;.remote and branch.&lt;name&gt;.merge. If the upstream branch
2008 of <em>A</em> is <em>origin/B</em> sometimes we say "<em>A</em> is tracking <em>origin/B</em>".
2009 </p>
2010 </dd>
2011 <dt class="hdlist1">
2012 <a id="def_working_tree"></a>working tree
2013 </dt>
2014 <dd>
2016 The tree of actual checked out files. The working tree normally
2017 contains the contents of the <a href="#def_HEAD">HEAD</a> commit&#8217;s tree,
2018 plus any local changes that you have made but not yet committed.
2019 </p>
2020 </dd>
2021 <dt class="hdlist1">
2022 <a id="def_worktree"></a>worktree
2023 </dt>
2024 <dd>
2026 A repository can have zero (i.e. bare repository) or one or
2027 more worktrees attached to it. One "worktree" consists of a
2028 "working tree" and repository metadata, most of which are
2029 shared among other worktrees of a single repository, and
2030 some of which are maintained separately per worktree
2031 (e.g. the index, HEAD and pseudorefs like MERGE_HEAD,
2032 per-worktree refs and per-worktree configuration file).
2033 </p>
2034 </dd>
2035 </dl></div>
2036 </div>
2037 </div>
2038 <div class="sect1">
2039 <h2 id="_see_also">SEE ALSO</h2>
2040 <div class="sectionbody">
2041 <div class="paragraph"><p><a href="gittutorial.html">gittutorial(7)</a>,
2042 <a href="gittutorial-2.html">gittutorial-2(7)</a>,
2043 <a href="gitcvs-migration.html">gitcvs-migration(7)</a>,
2044 <a href="giteveryday.html">giteveryday(7)</a>,
2045 <a href="user-manual.html">The Git User&#8217;s Manual</a></p></div>
2046 </div>
2047 </div>
2048 <div class="sect1">
2049 <h2 id="_git">GIT</h2>
2050 <div class="sectionbody">
2051 <div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
2052 </div>
2053 </div>
2054 </div>
2055 <div id="footnotes"><hr /></div>
2056 <div id="footer">
2057 <div id="footer-text">
2058 Last updated
2059 2020-03-10 15:02:33 PDT
2060 </div>
2061 </div>
2062 </body>
2063 </html>