blob: 00f2633a1f86e0ec6318a57941d40459b767aa5e [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 7.0.1" />
<style type="text/css">
/* Debug borders */
p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
/*
border: 1px solid red;
*/
}
body {
margin: 1em 5% 1em 5%;
}
a { color: blue; }
a:visited { color: fuchsia; }
em {
font-style: italic;
}
strong {
font-weight: bold;
}
tt {
color: navy;
}
h1, h2, h3, h4, h5, h6 {
color: #527bbd;
font-family: sans-serif;
margin-top: 1.2em;
margin-bottom: 0.5em;
line-height: 1.3;
}
h1 {
border-bottom: 2px solid silver;
}
h2 {
border-bottom: 2px solid silver;
padding-top: 0.5em;
}
div.sectionbody {
font-family: serif;
margin-left: 0;
}
hr {
border: 1px solid silver;
}
p {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
pre {
padding: 0;
margin: 0;
}
span#author {
color: #527bbd;
font-family: sans-serif;
font-weight: bold;
font-size: 1.2em;
}
span#email {
}
span#revision {
font-family: sans-serif;
}
div#footer {
font-family: sans-serif;
font-size: small;
border-top: 2px solid silver;
padding-top: 0.5em;
margin-top: 4.0em;
}
div#footer-text {
float: left;
padding-bottom: 0.5em;
}
div#footer-badges {
float: right;
padding-bottom: 0.5em;
}
div#preamble,
div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
margin-right: 10%;
margin-top: 1.5em;
margin-bottom: 1.5em;
}
div.admonitionblock {
margin-top: 2.5em;
margin-bottom: 2.5em;
}
div.content { /* Block element content. */
padding: 0;
}
/* Block element titles. */
div.title, caption.title {
font-family: sans-serif;
font-weight: bold;
text-align: left;
margin-top: 1.0em;
margin-bottom: 0.5em;
}
div.title + * {
margin-top: 0;
}
td div.title:first-child {
margin-top: 0.0em;
}
div.content div.title:first-child {
margin-top: 0.0em;
}
div.content + div.title {
margin-top: 0.0em;
}
div.sidebarblock > div.content {
background: #ffffee;
border: 1px solid silver;
padding: 0.5em;
}
div.listingblock > div.content {
border: 1px solid silver;
background: #f4f4f4;
padding: 0.5em;
}
div.quoteblock > div.content {
padding-left: 2.0em;
}
div.quoteblock .attribution {
text-align: right;
}
div.admonitionblock .icon {
vertical-align: top;
font-size: 1.1em;
font-weight: bold;
text-decoration: underline;
color: #527bbd;
padding-right: 0.5em;
}
div.admonitionblock td.content {
padding-left: 0.5em;
border-left: 2px solid silver;
}
div.exampleblock > div.content {
border-left: 2px solid silver;
padding: 0.5em;
}
div.verseblock div.content {
white-space: pre;
}
div.imageblock div.content { padding-left: 0; }
div.imageblock img { border: 1px solid silver; }
span.image img { border-style: none; }
dl {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
dt {
margin-top: 0.5em;
margin-bottom: 0;
font-style: italic;
}
dd > *:first-child {
margin-top: 0;
}
ul, ol {
list-style-position: outside;
}
ol.olist2 {
list-style-type: lower-alpha;
}
div.tableblock > table {
border-color: #527bbd;
border-width: 3px;
}
thead {
font-family: sans-serif;
font-weight: bold;
}
tfoot {
font-weight: bold;
}
div.hlist {
margin-top: 0.8em;
margin-bottom: 0.8em;
}
td.hlist1 {
vertical-align: top;
font-style: italic;
padding-right: 0.8em;
}
td.hlist2 {
vertical-align: top;
}
@media print {
div#footer-badges { display: none; }
}
/* Workarounds for IE6's broken and incomplete CSS2. */
div.sidebar-content {
background: #ffffee;
border: 1px solid silver;
padding: 0.5em;
}
div.sidebar-title, div.image-title {
font-family: sans-serif;
font-weight: bold;
margin-top: 0.0em;
margin-bottom: 0.5em;
}
div.listingblock div.content {
border: 1px solid silver;
background: #f4f4f4;
padding: 0.5em;
}
div.quoteblock-content {
padding-left: 2.0em;
}
div.exampleblock-content {
border-left: 2px solid silver;
padding-left: 0.5em;
}
</style>
<title>GIT Glossary</title>
</head>
<body>
<div id="header">
<h1>GIT Glossary</h1>
</div>
<div id="preamble">
<div class="sectionbody">
<p>This list is sorted alphabetically:</p>
<dl>
<dt>
<a id="ref_alternate_object_database"></a>alternate object database
</dt>
<dd>
<p>
Via the alternates mechanism, a <a href="#ref_repository">repository</a> can
inherit part of its <a href="#ref_object_database">object database</a> from another
<a href="#ref_object_database">object database</a>, which is called "alternate".
</p>
</dd>
<dt>
<a id="ref_blob_object"></a>blob object
</dt>
<dd>
<p>
Untyped <a href="#ref_object">object</a>, e.g. the contents of a file.
</p>
</dd>
<dt>
<a id="ref_branch"></a>branch
</dt>
<dd>
<p>
A non-cyclical graph of revisions, i.e. the complete history of a
particular <a href="#ref_revision">revision</a>, which is called the
<a href="#ref_branch">branch</a> <a href="#ref_head">head</a>. The <a href="#ref_branch">branch</a> heads
are stored in <tt>$GIT_DIR/refs/heads/</tt>.
</p>
</dd>
<dt>
<a id="ref_cache"></a>cache
</dt>
<dd>
<p>
Obsolete for: <a href="#ref_index">index</a>.
</p>
</dd>
<dt>
<a id="ref_chain"></a>chain
</dt>
<dd>
<p>
A list of objects, where each <a href="#ref_object">object</a> in the list contains
a reference to its successor (for example, the successor of a
<a href="#ref_commit">commit</a> could be one of its parents).
</p>
</dd>
<dt>
<a id="ref_changeset"></a>changeset
</dt>
<dd>
<p>
BitKeeper/cvsps speak for "<a href="#ref_commit">commit</a>". Since git does not
store changes, but states, it really does not make sense to use the term
"changesets" with git.
</p>
</dd>
<dt>
<a id="ref_checkout"></a>checkout
</dt>
<dd>
<p>
The action of updating the <a href="#ref_working_tree">working tree</a> to a
<a href="#ref_revision">revision</a> which was stored in the
<a href="#ref_object_database">object database</a>.
</p>
</dd>
<dt>
<a id="ref_clean"></a>clean
</dt>
<dd>
<p>
A <a href="#ref_working_tree">working tree</a> is <a href="#ref_clean">clean</a>, if it
corresponds to the <a href="#ref_revision">revision</a> referenced by the current
<a href="#ref_head">head</a>.
</p>
</dd>
<dt>
<a id="ref_commit"></a>commit
</dt>
<dd>
<p>
As a verb: The action of storing the current state of the
<a href="#ref_index">index</a> in the <a href="#ref_object_database">object database</a>. The
result is a <a href="#ref_revision">revision</a>. As a noun: Short hand for
<a href="#ref_commit_object">commit object</a>.
</p>
</dd>
<dt>
<a id="ref_commit_object"></a>commit object
</dt>
<dd>
<p>
An <a href="#ref_object">object</a> which contains the information about a
particular <a href="#ref_revision">revision</a>, such as parents, committer,
author, date and the <a href="#ref_tree_object">tree object</a> which corresponds
to the top <a href="#ref_directory">directory</a> of the stored
<a href="#ref_revision">revision</a>.
</p>
</dd>
<dt>
<a id="ref_core_git"></a>core git
</dt>
<dd>
<p>
Fundamental data structures and utilities of git. Exposes only limited
source code management tools.
</p>
</dd>
<dt>
<a id="ref_DAG"></a>DAG
</dt>
<dd>
<p>
Directed acyclic graph. The <a href="#ref_commit">commit</a> objects form a
directed acyclic graph, because they have parents (directed), and the
graph of <a href="#ref_commit">commit</a> objects is acyclic (there is no
<a href="#ref_chain">chain</a> which begins and ends with the same
<a href="#ref_object">object</a>).
</p>
</dd>
<dt>
<a id="ref_dircache"></a>dircache
</dt>
<dd>
<p>
You are <strong>waaaaay</strong> behind.
</p>
</dd>
<dt>
<a id="ref_directory"></a>directory
</dt>
<dd>
<p>
The list you get with "ls" :-)
</p>
</dd>
<dt>
<a id="ref_dirty"></a>dirty
</dt>
<dd>
<p>
A <a href="#ref_working_tree">working tree</a> is said to be <a href="#ref_dirty">dirty</a> if
it contains modifications which have not been committed to the current
<a href="#ref_branch">branch</a>.
</p>
</dd>
<dt>
<a id="ref_ent"></a>ent
</dt>
<dd>
<p>
Favorite synonym to "<a href="#ref_tree-ish">tree-ish</a>" by some total geeks. See
<tt>http://en.wikipedia.org/wiki/Ent_(Middle-earth)</tt> for an in-depth
explanation.
</p>
</dd>
<dt>
<a id="ref_fetch"></a>fetch
</dt>
<dd>
<p>
Fetching a <a href="#ref_branch">branch</a> means to get the
<a href="#ref_branch">branch</a>'s <a href="#ref_head_ref">head ref</a> from a remote
<a href="#ref_repository">repository</a>, to find out which objects are missing
from the local <a href="#ref_object_database">object database</a>, and to get them,
too.
</p>
</dd>
<dt>
<a id="ref_file_system"></a>file system
</dt>
<dd>
<p>
Linus Torvalds originally designed git to be a user space file system,
i.e. the infrastructure to hold files and directories. That ensured the
efficiency and speed of git.
</p>
</dd>
<dt>
<a id="ref_git_archive"></a>git archive
</dt>
<dd>
<p>
Synonym for <a href="#ref_repository">repository</a> (for arch people).
</p>
</dd>
<dt>
<a id="ref_hash"></a>hash
</dt>
<dd>
<p>
In git's context, synonym to <a href="#ref_object_name">object name</a>.
</p>
</dd>
<dt>
<a id="ref_head"></a>head
</dt>
<dd>
<p>
The top of a <a href="#ref_branch">branch</a>. It contains a <a href="#ref_ref">ref</a> to the
corresponding <a href="#ref_commit_object">commit object</a>.
</p>
</dd>
<dt>
<a id="ref_head_ref"></a>head ref
</dt>
<dd>
<p>
A <a href="#ref_ref">ref</a> pointing to a <a href="#ref_head">head</a>. Often, this is
abbreviated to "<a href="#ref_head">head</a>". Head refs are stored in
<tt>$GIT_DIR/refs/heads/</tt>.
</p>
</dd>
<dt>
<a id="ref_index"></a>index
</dt>
<dd>
<p>
A collection of files with stat information, whose contents are stored
as objects. The <a href="#ref_index">index</a> is a stored version of your working
<a href="#ref_tree">tree</a>. Truth be told, it can also contain a second, and even
a third version of a <a href="#ref_working_tree">working tree</a>, which are used
when merging.
</p>
</dd>
<dt>
<a id="ref_index_entry"></a>index entry
</dt>
<dd>
<p>
The information regarding a particular file, stored in the
<a href="#ref_index">index</a>. An <a href="#ref_index_entry">index entry</a> can be unmerged,
if a <a href="#ref_merge">merge</a> was started, but not yet finished (i.e. if the
<a href="#ref_index">index</a> contains multiple versions of that file).
</p>
</dd>
<dt>
<a id="ref_master"></a>master
</dt>
<dd>
<p>
The default <a href="#ref_branch">branch</a>. Whenever you create a git
<a href="#ref_repository">repository</a>, a <a href="#ref_branch">branch</a> named
"<a href="#ref_master">master</a>" is created, and becomes the active
<a href="#ref_branch">branch</a>. In most cases, this contains the local
development.
</p>
</dd>
<dt>
<a id="ref_merge"></a>merge
</dt>
<dd>
<p>
To <a href="#ref_merge">merge</a> branches means to try to accumulate the changes
since a common ancestor and apply them to the first
<a href="#ref_branch">branch</a>. An automatic <a href="#ref_merge">merge</a> uses heuristics
to accomplish that. Evidently, an automatic <a href="#ref_merge">merge</a> can
fail.
</p>
</dd>
<dt>
<a id="ref_object"></a>object
</dt>
<dd>
<p>
The unit of storage in git. It is uniquely identified by the
<a href="#ref_SHA1">SHA1</a> of its contents. Consequently, an
<a href="#ref_object">object</a> can not be changed.
</p>
</dd>
<dt>
<a id="ref_object_database"></a>object database
</dt>
<dd>
<p>
Stores a set of "objects", and an individual <a href="#ref_object">object</a> is
identified by its <a href="#ref_object_name">object name</a>. The objects usually
live in <tt>$GIT_DIR/objects/</tt>.
</p>
</dd>
<dt>
<a id="ref_object_identifier"></a>object identifier
</dt>
<dd>
<p>
Synonym for <a href="#ref_object_name">object name</a>.
</p>
</dd>
<dt>
<a id="ref_object_name"></a>object name
</dt>
<dd>
<p>
The unique identifier of an <a href="#ref_object">object</a>. The <a href="#ref_hash">hash</a>
of the <a href="#ref_object">object</a>'s contents using the Secure Hash Algorithm
1 and usually represented by the 40 character hexadecimal encoding of
the <a href="#ref_hash">hash</a> of the <a href="#ref_object">object</a> (possibly followed by
a white space).
</p>
</dd>
<dt>
<a id="ref_octopus"></a>octopus
</dt>
<dd>
<p>
To <a href="#ref_merge">merge</a> more than two branches. Also denotes an
intelligent predator.
</p>
</dd>
<dt>
<a id="ref_origin"></a>origin
</dt>
<dd>
<p>
The default upstream <a href="#ref_branch">branch</a>. Most projects have one
upstream project which they track, and by default
<em><a href="#ref_origin">origin</a></em> is used for that purpose. New updates from
upstream will be fetched into this <a href="#ref_branch">branch</a>; you should
never <a href="#ref_commit">commit</a> to it yourself.
</p>
</dd>
<dt>
<a id="ref_pack"></a>pack
</dt>
<dd>
<p>
A set of objects which have been compressed into one file (to save space
or to transmit them efficiently).
</p>
</dd>
<dt>
<a id="ref_pack_index"></a>pack index
</dt>
<dd>
<p>
The list of identifiers, and other information, of the objects in a
<a href="#ref_pack">pack</a>, to assist in efficiently accessing the contents of a
<a href="#ref_pack">pack</a>.
</p>
</dd>
<dt>
<a id="ref_parent"></a>parent
</dt>
<dd>
<p>
A <a href="#ref_commit_object">commit object</a> contains a (possibly empty) list
of the logical predecessor(s) in the line of development, i.e. its
parents.
</p>
</dd>
<dt>
<a id="ref_plumbing"></a>plumbing
</dt>
<dd>
<p>
Cute name for <a href="#ref_core_git">core git</a>.
</p>
</dd>
<dt>
<a id="ref_porcelain"></a>porcelain
</dt>
<dd>
<p>
Cute name for programs and program suites depending on
<a href="#ref_core_git">core git</a>, presenting a high level access to
<a href="#ref_core_git">core git</a>. Porcelains expose more of a <a href="#ref_SCM">SCM</a>
interface than the <a href="#ref_plumbing">plumbing</a>.
</p>
</dd>
<dt>
<a id="ref_pull"></a>pull
</dt>
<dd>
<p>
Pulling a <a href="#ref_branch">branch</a> means to <a href="#ref_fetch">fetch</a> it and
<a href="#ref_merge">merge</a> it.
</p>
</dd>
<dt>
<a id="ref_push"></a>push
</dt>
<dd>
<p>
Pushing a <a href="#ref_branch">branch</a> means to get the <a href="#ref_branch">branch</a>'s
<a href="#ref_head_ref">head ref</a> from a remote <a href="#ref_repository">repository</a>,
find out if it is an ancestor to the <a href="#ref_branch">branch</a>'s local
<a href="#ref_head_ref">head ref</a> is a direct, and in that case, putting all
objects, which are <a href="#ref_reachable">reachable</a> from the local
<a href="#ref_head_ref">head ref</a>, and which are missing from the remote
<a href="#ref_repository">repository</a>, into the remote
<a href="#ref_object_database">object database</a>, and updating the remote
<a href="#ref_head_ref">head ref</a>. If the remote <a href="#ref_head">head</a> is not an
ancestor to the local <a href="#ref_head">head</a>, the <a href="#ref_push">push</a> fails.
</p>
</dd>
<dt>
<a id="ref_reachable"></a>reachable
</dt>
<dd>
<p>
An <a href="#ref_object">object</a> is <a href="#ref_reachable">reachable</a> from a
<a href="#ref_ref">ref</a>/<a href="#ref_commit">commit</a>/<a href="#ref_tree">tree</a>/<a href="#ref_tag">tag</a>,
if there is a <a href="#ref_chain">chain</a> leading from the latter to the former.
</p>
</dd>
<dt>
<a id="ref_rebase"></a>rebase
</dt>
<dd>
<p>
To <a href="#ref_clean">clean</a> a <a href="#ref_branch">branch</a> by starting from the
<a href="#ref_head">head</a> of the main line of development
("<a href="#ref_master">master</a>"), and reapply the (possibly cherry-picked)
changes from that <a href="#ref_branch">branch</a>.
</p>
</dd>
<dt>
<a id="ref_ref"></a>ref
</dt>
<dd>
<p>
A 40-byte hex representation of a <a href="#ref_SHA1">SHA1</a> pointing to a
particular <a href="#ref_object">object</a>. These may be stored in
<tt>$GIT_DIR/refs/</tt>.
</p>
</dd>
<dt>
<a id="ref_repository"></a>repository
</dt>
<dd>
<p>
A collection of refs together with an <a href="#ref_object_database">object database</a> containing all objects, which are <a href="#ref_reachable">reachable</a>
from the refs, possibly accompanied by meta data from one or more
porcelains. A <a href="#ref_repository">repository</a> can share an
<a href="#ref_object_database">object database</a> with other repositories.
</p>
</dd>
<dt>
<a id="ref_resolve"></a>resolve
</dt>
<dd>
<p>
The action of fixing up manually what a failed automatic
<a href="#ref_merge">merge</a> left behind.
</p>
</dd>
<dt>
<a id="ref_revision"></a>revision
</dt>
<dd>
<p>
A particular state of files and directories which was stored in the
<a href="#ref_object_database">object database</a>. It is referenced by a
<a href="#ref_commit_object">commit object</a>.
</p>
</dd>
<dt>
<a id="ref_rewind"></a>rewind
</dt>
<dd>
<p>
To throw away part of the development, i.e. to assign the
<a href="#ref_head">head</a> to an earlier <a href="#ref_revision">revision</a>.
</p>
</dd>
<dt>
<a id="ref_SCM"></a>SCM
</dt>
<dd>
<p>
Source code management (tool).
</p>
</dd>
<dt>
<a id="ref_SHA1"></a>SHA1
</dt>
<dd>
<p>
Synonym for <a href="#ref_object_name">object name</a>.
</p>
</dd>
<dt>
<a id="ref_tag"></a>tag
</dt>
<dd>
<p>
A <a href="#ref_ref">ref</a> pointing to a <a href="#ref_tag">tag</a> or
<a href="#ref_commit_object">commit object</a>. In contrast to a <a href="#ref_head">head</a>,
a <a href="#ref_tag">tag</a> is not changed by a <a href="#ref_commit">commit</a>. Tags (not
<a href="#ref_tag">tag</a> objects) are stored in <tt>$GIT_DIR/refs/tags/</tt>. A git
<a href="#ref_tag">tag</a> has nothing to do with a Lisp <a href="#ref_tag">tag</a> (which is
called <a href="#ref_object">object</a> type in git's context). A <a href="#ref_tag">tag</a>
is most typically used to mark a particular point in the
<a href="#ref_commit">commit</a> ancestry <a href="#ref_chain">chain</a>.
</p>
</dd>
<dt>
<a id="ref_tag_object"></a>tag object
</dt>
<dd>
<p>
An <a href="#ref_object">object</a> containing a <a href="#ref_ref">ref</a> pointing to
another <a href="#ref_object">object</a>, which can contain a message just like a
<a href="#ref_commit_object">commit object</a>. It can also contain a (PGP)
signature, in which case it is called a "signed <a href="#ref_tag_object">tag object</a>".
</p>
</dd>
<dt>
<a id="ref_tree"></a>tree
</dt>
<dd>
<p>
Either a <a href="#ref_working_tree">working tree</a>, or a <a href="#ref_tree_object">tree object</a> together with the dependent blob and <a href="#ref_tree">tree</a> objects
(i.e. a stored representation of a <a href="#ref_working_tree">working tree</a>).
</p>
</dd>
<dt>
<a id="ref_tree_object"></a>tree object
</dt>
<dd>
<p>
An <a href="#ref_object">object</a> containing a list of file names and modes along
with refs to the associated blob and/or <a href="#ref_tree">tree</a> objects. A
<a href="#ref_tree">tree</a> is equivalent to a <a href="#ref_directory">directory</a>.
</p>
</dd>
<dt>
<a id="ref_tree-ish"></a>tree-ish
</dt>
<dd>
<p>
A <a href="#ref_ref">ref</a> pointing to either a <a href="#ref_commit_object">commit object</a>, a <a href="#ref_tree_object">tree object</a>, or a <a href="#ref_tag_object">tag object</a> pointing to a <a href="#ref_tag">tag</a> or <a href="#ref_commit">commit</a> or
<a href="#ref_tree_object">tree object</a>.
</p>
</dd>
<dt>
<a id="ref_working_tree"></a>working tree
</dt>
<dd>
<p>
The set of files and directories currently being worked on, i.e. you can
work in your <a href="#ref_working_tree">working tree</a> without using git at all.
</p>
</dd>
</dl>
</div>
</div>
<h2>Author</h2>
<div class="sectionbody">
<p>Written by Johannes Schindelin &lt;Johannes.Schindelin@gmx.de&gt; and
the git-list &lt;git@vger.kernel.org&gt;.</p>
</div>
<h2>GIT</h2>
<div class="sectionbody">
<p>Part of the <a href="git.html">git</a> suite</p>
</div>
<div id="footer">
<div id="footer-text">
Last updated 10-Jan-2006 16:53:50 PDT
</div>
</div>
</body>
</html>