OSDN Git Service

Add Git official document to help
[tortoisegit/TortoiseGitJp.git] / doc / source / en / TortoiseGit / git_doc / gitglossary.html.xml
diff --git a/doc/source/en/TortoiseGit/git_doc/gitglossary.html.xml b/doc/source/en/TortoiseGit/git_doc/gitglossary.html.xml
new file mode 100644 (file)
index 0000000..b2d8f24
--- /dev/null
@@ -0,0 +1,996 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">\r
+\r
+<article lang="en" id="gitglossary(7)">\r
+<articleinfo>\r
+    <title>gitglossary(7)</title>\r
+        <indexterm>\r
+                <primary>gitglossary(7)</primary>\r
+        </indexterm>\r
+</articleinfo>\r
+<simplesect id="_name">\r
+<title>NAME</title>\r
+<simpara>gitglossary - A GIT Glossary</simpara>\r
+</simplesect>\r
+<simplesect id="_synopsis">\r
+<title>SYNOPSIS</title>\r
+<simpara>*</simpara>\r
+</simplesect>\r
+<simplesect id="_description">\r
+<title>DESCRIPTION</title>\r
+<variablelist>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_alternate_object_database" xreflabel="[def_alternate_object_database]"/>alternate object database\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Via the alternates mechanism, a <link linkend="def_repository">repository</link>\r
+        can inherit part of its <link linkend="def_object_database">object database</link>\r
+        from another object database, which is called "alternate".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_bare_repository" xreflabel="[def_bare_repository]"/>bare repository\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A bare repository is normally an appropriately\r
+        named <link linkend="def_directory">directory</link> with a <literal>.git</literal> suffix that does not\r
+        have a locally checked-out copy of any of the files under\r
+        revision control. That is, all of the <literal>git</literal>\r
+        administrative and control files that would normally be present in the\r
+        hidden <literal>.git</literal> sub-directory are directly present in the\r
+        <literal>repository.git</literal> directory instead,\r
+        and no other files are present and checked out. Usually publishers of\r
+        public repositories make bare repositories available.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_blob_object" xreflabel="[def_blob_object]"/>blob object\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Untyped <link linkend="def_object">object</link>, e.g. the contents of a file.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_branch" xreflabel="[def_branch]"/>branch\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A "branch" is an active line of development.  The most recent\r
+        <link linkend="def_commit">commit</link> on a branch is referred to as the tip of\r
+        that branch.  The tip of the branch is referenced by a branch\r
+        <link linkend="def_head">head</link>, which moves forward as additional development\r
+        is done on the branch.  A single git\r
+        <link linkend="def_repository">repository</link> can track an arbitrary number of\r
+        branches, but your <link linkend="def_working_tree">working tree</link> is\r
+        associated with just one of them (the "current" or "checked out"\r
+        branch), and <link linkend="def_HEAD">HEAD</link> points to that branch.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_cache" xreflabel="[def_cache]"/>cache\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Obsolete for: <link linkend="def_index">index</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_chain" xreflabel="[def_chain]"/>chain\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A list of objects, where each <link linkend="def_object">object</link> in the list contains\r
+        a reference to its successor (for example, the successor of a\r
+        <link linkend="def_commit">commit</link> could be one of its <link linkend="def_parent">parents</link>).\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_changeset" xreflabel="[def_changeset]"/>changeset\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        BitKeeper/cvsps speak for "<link linkend="def_commit">commit</link>". Since git does not\r
+        store changes, but states, it really does not make sense to use the term\r
+        "changesets" with git.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_checkout" xreflabel="[def_checkout]"/>checkout\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The action of updating all or part of the\r
+        <link linkend="def_working_tree">working tree</link> with a <link linkend="def_tree_object">tree object</link>\r
+        or <link linkend="def_blob_object">blob</link> from the\r
+        <link linkend="def_object_database">object database</link>, and updating the\r
+        <link linkend="def_index">index</link> and <link linkend="def_HEAD">HEAD</link> if the whole working tree has\r
+        been pointed at a new <link linkend="def_branch">branch</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_cherry-picking" xreflabel="[def_cherry-picking]"/>cherry-picking\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        In <link linkend="def_SCM">SCM</link> jargon, "cherry pick" means to choose a subset of\r
+        changes out of a series of changes (typically commits) and record them\r
+        as a new series of changes on top of a different codebase. In GIT, this is\r
+        performed by the "git cherry-pick" command to extract the change introduced\r
+        by an existing <link linkend="def_commit">commit</link> and to record it based on the tip\r
+        of the current <link linkend="def_branch">branch</link> as a new commit.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_clean" xreflabel="[def_clean]"/>clean\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A <link linkend="def_working_tree">working tree</link> is clean, if it\r
+        corresponds to the <link linkend="def_revision">revision</link> referenced by the current\r
+        <link linkend="def_head">head</link>. Also see "<link linkend="def_dirty">dirty</link>".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_commit" xreflabel="[def_commit]"/>commit\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        As a noun: A single point in the\r
+        git history; the entire history of a project is represented as a\r
+        set of interrelated commits.  The word "commit" is often\r
+        used by git in the same places other revision control systems\r
+        use the words "revision" or "version".  Also used as a short\r
+        hand for <link linkend="def_commit_object">commit object</link>.\r
+</simpara>\r
+<simpara>As a verb: The action of storing a new snapshot of the project&#8217;s\r
+state in the git history, by creating a new commit representing the current\r
+state of the <link linkend="def_index">index</link> and advancing <link linkend="def_HEAD">HEAD</link>\r
+to point at the new commit.</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_commit_object" xreflabel="[def_commit_object]"/>commit object\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        An <link linkend="def_object">object</link> which contains the information about a\r
+        particular <link linkend="def_revision">revision</link>, such as <link linkend="def_parent">parents</link>, committer,\r
+        author, date and the <link linkend="def_tree_object">tree object</link> which corresponds\r
+        to the top <link linkend="def_directory">directory</link> of the stored\r
+        revision.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_core_git" xreflabel="[def_core_git]"/>core git\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Fundamental data structures and utilities of git. Exposes only limited\r
+        source code management tools.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_DAG" xreflabel="[def_DAG]"/>DAG\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Directed acyclic graph. The <link linkend="def_commit_object">commit objects</link> form a\r
+        directed acyclic graph, because they have parents (directed), and the\r
+        graph of commit objects is acyclic (there is no <link linkend="def_chain">chain</link>\r
+        which begins and ends with the same <link linkend="def_object">object</link>).\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_dangling_object" xreflabel="[def_dangling_object]"/>dangling object\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        An <link linkend="def_unreachable_object">unreachable object</link> which is not\r
+        <link linkend="def_reachable">reachable</link> even from other unreachable objects; a\r
+        dangling object has no references to it from any\r
+        reference or <link linkend="def_object">object</link> in the <link linkend="def_repository">repository</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_detached_HEAD" xreflabel="[def_detached_HEAD]"/>detached HEAD\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Normally the <link linkend="def_HEAD">HEAD</link> stores the name of a\r
+        <link linkend="def_branch">branch</link>.  However, git also allows you to <link linkend="def_checkout">check out</link>\r
+        an arbitrary <link linkend="def_commit">commit</link> that isn&#8217;t necessarily the tip of any\r
+        particular branch.  In this case HEAD is said to be "detached".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_dircache" xreflabel="[def_dircache]"/>dircache\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        You are <emphasis role="strong">waaaaay</emphasis> behind. See <link linkend="def_index">index</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_directory" xreflabel="[def_directory]"/>directory\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The list you get with "ls" :-)\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_dirty" xreflabel="[def_dirty]"/>dirty\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A <link linkend="def_working_tree">working tree</link> is said to be "dirty" if\r
+        it contains modifications which have not been <link linkend="def_commit">committed</link> to the current\r
+        <link linkend="def_branch">branch</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_ent" xreflabel="[def_ent]"/>ent\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Favorite synonym to "<link linkend="def_tree-ish">tree-ish</link>" by some total geeks. See\r
+        <literal>http://en.wikipedia.org/wiki/Ent_(Middle-earth)</literal> for an in-depth\r
+        explanation. Avoid this term, not to confuse people.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_evil_merge" xreflabel="[def_evil_merge]"/>evil merge\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        An evil merge is a <link linkend="def_merge">merge</link> that introduces changes that\r
+        do not appear in any <link linkend="def_parent">parent</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_fast_forward" xreflabel="[def_fast_forward]"/>fast forward\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A fast-forward is a special type of <link linkend="def_merge">merge</link> where you have a\r
+        <link linkend="def_revision">revision</link> and you are "merging" another\r
+        <link linkend="def_branch">branch</link>'s changes that happen to be a descendant of what\r
+        you have. In such these cases, you do not make a new <link linkend="def_merge">merge</link>\r
+        <link linkend="def_commit">commit</link> but instead just update to his\r
+        revision. This will happen frequently on a\r
+        <link linkend="def_tracking_branch">tracking branch</link> of a remote\r
+        <link linkend="def_repository">repository</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_fetch" xreflabel="[def_fetch]"/>fetch\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Fetching a <link linkend="def_branch">branch</link> means to get the\r
+        branch&#8217;s <link linkend="def_head_ref">head ref</link> from a remote\r
+        <link linkend="def_repository">repository</link>, to find out which objects are\r
+        missing from the local <link linkend="def_object_database">object database</link>,\r
+        and to get them, too.  See also <xref linkend="git-fetch(1)"/>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_file_system" xreflabel="[def_file_system]"/>file system\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Linus Torvalds originally designed git to be a user space file system,\r
+        i.e. the infrastructure to hold files and directories. That ensured the\r
+        efficiency and speed of git.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_git_archive" xreflabel="[def_git_archive]"/>git archive\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Synonym for <link linkend="def_repository">repository</link> (for arch people).\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_grafts" xreflabel="[def_grafts]"/>grafts\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Grafts enables two otherwise different lines of development to be joined\r
+        together by recording fake ancestry information for commits. This way\r
+        you can make git pretend the set of <link linkend="def_parent">parents</link> a <link linkend="def_commit">commit</link> has\r
+        is different from what was recorded when the commit was\r
+        created. Configured via the <literal>.git/info/grafts</literal> file.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_hash" xreflabel="[def_hash]"/>hash\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        In git&#8217;s context, synonym to <link linkend="def_object_name">object name</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_head" xreflabel="[def_head]"/>head\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A <link linkend="def_ref">named reference</link> to the <link linkend="def_commit">commit</link> at the tip of a\r
+        <link linkend="def_branch">branch</link>.  Heads are stored in\r
+        <literal>$GIT_DIR/refs/heads/</literal>, except when using packed refs. (See\r
+        <xref linkend="git-pack-refs(1)"/>.)\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_HEAD" xreflabel="[def_HEAD]"/>HEAD\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The current <link linkend="def_branch">branch</link>.  In more detail: Your <link linkend="def_working_tree">working tree</link> is normally derived from the state of the tree\r
+        referred to by HEAD.  HEAD is a reference to one of the\r
+        <link linkend="def_head">heads</link> in your repository, except when using a\r
+        <link linkend="def_detached_HEAD">detached HEAD</link>, in which case it may\r
+        reference an arbitrary commit.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_head_ref" xreflabel="[def_head_ref]"/>head ref\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A synonym for <link linkend="def_head">head</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_hook" xreflabel="[def_hook]"/>hook\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        During the normal execution of several git commands, call-outs are made\r
+        to optional scripts that allow a developer to add functionality or\r
+        checking. Typically, the hooks allow for a command to be pre-verified\r
+        and potentially aborted, and allow for a post-notification after the\r
+        operation is done. The hook scripts are found in the\r
+        <literal>$GIT_DIR/hooks/</literal> directory, and are enabled by simply\r
+        removing the <literal>.sample</literal> suffix from the filename. In earlier versions\r
+        of git you had to make them executable.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_index" xreflabel="[def_index]"/>index\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A collection of files with stat information, whose contents are stored\r
+        as objects. The index is a stored version of your\r
+        <link linkend="def_working_tree">working tree</link>. Truth be told, it can also contain a second, and even\r
+        a third version of a working tree, which are used\r
+        when <link linkend="def_merge">merging</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_index_entry" xreflabel="[def_index_entry]"/>index entry\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The information regarding a particular file, stored in the\r
+        <link linkend="def_index">index</link>. An index entry can be unmerged, if a\r
+        <link linkend="def_merge">merge</link> was started, but not yet finished (i.e. if\r
+        the index contains multiple versions of that file).\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_master" xreflabel="[def_master]"/>master\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The default development <link linkend="def_branch">branch</link>. Whenever you\r
+        create a git <link linkend="def_repository">repository</link>, a branch named\r
+        "master" is created, and becomes the active branch. In most\r
+        cases, this contains the local development, though that is\r
+        purely by convention and is not required.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_merge" xreflabel="[def_merge]"/>merge\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        As a verb: To bring the contents of another\r
+        <link linkend="def_branch">branch</link> (possibly from an external\r
+        <link linkend="def_repository">repository</link>) into the current branch.  In the\r
+        case where the merged-in branch is from a different repository,\r
+        this is done by first <link linkend="def_fetch">fetching</link> the remote branch\r
+        and then merging the result into the current branch.  This\r
+        combination of fetch and merge operations is called a\r
+        <link linkend="def_pull">pull</link>.  Merging is performed by an automatic process\r
+        that identifies changes made since the branches diverged, and\r
+        then applies all those changes together.  In cases where changes\r
+        conflict, manual intervention may be required to complete the\r
+        merge.\r
+</simpara>\r
+<simpara>As a noun: unless it is a <link linkend="def_fast_forward">fast forward</link>, a\r
+successful merge results in the creation of a new <link linkend="def_commit">commit</link>\r
+representing the result of the merge, and having as\r
+<link linkend="def_parent">parents</link> the tips of the merged <link linkend="def_branch">branches</link>.\r
+This commit is referred to as a "merge commit", or sometimes just a\r
+"merge".</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_object" xreflabel="[def_object]"/>object\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The unit of storage in git. It is uniquely identified by the\r
+        <link linkend="def_SHA1">SHA1</link> of its contents. Consequently, an\r
+        object can not be changed.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_object_database" xreflabel="[def_object_database]"/>object database\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Stores a set of "objects", and an individual <link linkend="def_object">object</link> is\r
+        identified by its <link linkend="def_object_name">object name</link>. The objects usually\r
+        live in <literal>$GIT_DIR/objects/</literal>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_object_identifier" xreflabel="[def_object_identifier]"/>object identifier\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Synonym for <link linkend="def_object_name">object name</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_object_name" xreflabel="[def_object_name]"/>object name\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The unique identifier of an <link linkend="def_object">object</link>. The <link linkend="def_hash">hash</link>\r
+        of the object&#8217;s contents using the Secure Hash Algorithm\r
+        1 and usually represented by the 40 character hexadecimal encoding of\r
+        the <link linkend="def_hash">hash</link> of the object.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_object_type" xreflabel="[def_object_type]"/>object type\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        One of the identifiers "<link linkend="def_commit_object">commit</link>",\r
+        "<link linkend="def_tree_object">tree</link>", "<link linkend="def_tag_object">tag</link>" or\r
+        "<link linkend="def_blob_object">blob</link>" describing the type of an\r
+        <link linkend="def_object">object</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_octopus" xreflabel="[def_octopus]"/>octopus\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        To <link linkend="def_merge">merge</link> more than two <link linkend="def_branch">branches</link>. Also denotes an\r
+        intelligent predator.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_origin" xreflabel="[def_origin]"/>origin\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The default upstream <link linkend="def_repository">repository</link>. Most projects have\r
+        at least one upstream project which they track. By default\r
+        <emphasis>origin</emphasis> is used for that purpose. New upstream updates\r
+        will be fetched into remote <link linkend="def_tracking_branch">tracking branches</link> named\r
+        origin/name-of-upstream-branch, which you can see using\r
+        "<literal>git branch -r</literal>".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_pack" xreflabel="[def_pack]"/>pack\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A set of objects which have been compressed into one file (to save space\r
+        or to transmit them efficiently).\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_pack_index" xreflabel="[def_pack_index]"/>pack index\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The list of identifiers, and other information, of the objects in a\r
+        <link linkend="def_pack">pack</link>, to assist in efficiently accessing the contents of a\r
+        pack.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_parent" xreflabel="[def_parent]"/>parent\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A <link linkend="def_commit_object">commit object</link> contains a (possibly empty) list\r
+        of the logical predecessor(s) in the line of development, i.e. its\r
+        parents.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_pickaxe" xreflabel="[def_pickaxe]"/>pickaxe\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The term <link linkend="def_pickaxe">pickaxe</link> refers to an option to the diffcore\r
+        routines that help select changes that add or delete a given text\r
+        string. With the <literal>--pickaxe-all</literal> option, it can be used to view the full\r
+        <link linkend="def_changeset">changeset</link> that introduced or removed, say, a\r
+        particular line of text. See <xref linkend="git-diff(1)"/>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_plumbing" xreflabel="[def_plumbing]"/>plumbing\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Cute name for <link linkend="def_core_git">core git</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_porcelain" xreflabel="[def_porcelain]"/>porcelain\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Cute name for programs and program suites depending on\r
+        <link linkend="def_core_git">core git</link>, presenting a high level access to\r
+        core git. Porcelains expose more of a <link linkend="def_SCM">SCM</link>\r
+        interface than the <link linkend="def_plumbing">plumbing</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_pull" xreflabel="[def_pull]"/>pull\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Pulling a <link linkend="def_branch">branch</link> means to <link linkend="def_fetch">fetch</link> it and\r
+        <link linkend="def_merge">merge</link> it.  See also <xref linkend="git-pull(1)"/>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_push" xreflabel="[def_push]"/>push\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Pushing a <link linkend="def_branch">branch</link> means to get the branch&#8217;s\r
+        <link linkend="def_head_ref">head ref</link> from a remote <link linkend="def_repository">repository</link>,\r
+        find out if it is a direct ancestor to the branch&#8217;s local\r
+        head ref, and in that case, putting all\r
+        objects, which are <link linkend="def_reachable">reachable</link> from the local\r
+        head ref, and which are missing from the remote\r
+        repository, into the remote\r
+        <link linkend="def_object_database">object database</link>, and updating the remote\r
+        head ref. If the remote <link linkend="def_head">head</link> is not an\r
+        ancestor to the local head, the push fails.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_reachable" xreflabel="[def_reachable]"/>reachable\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        All of the ancestors of a given <link linkend="def_commit">commit</link> are said to be\r
+        "reachable" from that commit. More\r
+        generally, one <link linkend="def_object">object</link> is reachable from\r
+        another if we can reach the one from the other by a <link linkend="def_chain">chain</link>\r
+        that follows <link linkend="def_tag">tags</link> to whatever they tag,\r
+        <link linkend="def_commit_object">commits</link> to their parents or trees, and\r
+        <link linkend="def_tree_object">trees</link> to the trees or <link linkend="def_blob_object">blobs</link>\r
+        that they contain.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_rebase" xreflabel="[def_rebase]"/>rebase\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        To reapply a series of changes from a <link linkend="def_branch">branch</link> to a\r
+        different base, and reset the <link linkend="def_head">head</link> of that branch\r
+        to the result.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_ref" xreflabel="[def_ref]"/>ref\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A 40-byte hex representation of a <link linkend="def_SHA1">SHA1</link> or a name that\r
+        denotes a particular <link linkend="def_object">object</link>. These may be stored in\r
+        <literal>$GIT_DIR/refs/</literal>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_reflog" xreflabel="[def_reflog]"/>reflog\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A reflog shows the local "history" of a ref.  In other words,\r
+        it can tell you what the 3rd last revision in <emphasis>this</emphasis> repository\r
+        was, and what was the current state in <emphasis>this</emphasis> repository,\r
+        yesterday 9:14pm.  See <xref linkend="git-reflog(1)"/> for details.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_refspec" xreflabel="[def_refspec]"/>refspec\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A "refspec" is used by <link linkend="def_fetch">fetch</link> and\r
+        <link linkend="def_push">push</link> to describe the mapping between remote\r
+        <link linkend="def_ref">ref</link> and local ref. They are combined with a colon in\r
+        the format &lt;src&gt;:&lt;dst&gt;, preceded by an optional plus sign, +.\r
+        For example: <literal>git fetch $URL\r
+        refs/heads/master:refs/heads/origin</literal> means "grab the master\r
+        <link linkend="def_branch">branch</link> <link linkend="def_head">head</link> from the $URL and store\r
+        it as my origin branch head". And <literal>git push\r
+        $URL refs/heads/master:refs/heads/to-upstream</literal> means "publish my\r
+        master branch head as to-upstream branch at $URL". See also\r
+        <xref linkend="git-push(1)"/>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_repository" xreflabel="[def_repository]"/>repository\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A collection of <link linkend="def_ref">refs</link> together with an\r
+        <link linkend="def_object_database">object database</link> containing all objects\r
+        which are <link linkend="def_reachable">reachable</link> from the refs, possibly\r
+        accompanied by meta data from one or more <link linkend="def_porcelain">porcelains</link>. A\r
+        repository can share an object database with other repositories\r
+        via <link linkend="def_alternate_object_database">alternates mechanism</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_resolve" xreflabel="[def_resolve]"/>resolve\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The action of fixing up manually what a failed automatic\r
+        <link linkend="def_merge">merge</link> left behind.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_revision" xreflabel="[def_revision]"/>revision\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A particular state of files and directories which was stored in the\r
+        <link linkend="def_object_database">object database</link>. It is referenced by a\r
+        <link linkend="def_commit_object">commit object</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_rewind" xreflabel="[def_rewind]"/>rewind\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        To throw away part of the development, i.e. to assign the\r
+        <link linkend="def_head">head</link> to an earlier <link linkend="def_revision">revision</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_SCM" xreflabel="[def_SCM]"/>SCM\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Source code management (tool).\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_SHA1" xreflabel="[def_SHA1]"/>SHA1\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Synonym for <link linkend="def_object_name">object name</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_shallow_repository" xreflabel="[def_shallow_repository]"/>shallow repository\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A shallow <link linkend="def_repository">repository</link> has an incomplete\r
+        history some of whose <link linkend="def_commit">commits</link> have <link linkend="def_parent">parents</link> cauterized away (in other\r
+        words, git is told to pretend that these commits do not have the\r
+        parents, even though they are recorded in the <link linkend="def_commit_object">commit         object</link>). This is sometimes useful when you are interested only in the\r
+        recent history of a project even though the real history recorded in the\r
+        upstream is much larger. A shallow repository\r
+        is created by giving the <literal>--depth</literal> option to <xref linkend="git-clone(1)"/>, and\r
+        its history can be later deepened with <xref linkend="git-fetch(1)"/>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_symref" xreflabel="[def_symref]"/>symref\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Symbolic reference: instead of containing the <link linkend="def_SHA1">SHA1</link>\r
+        id itself, it is of the format <emphasis>ref: refs/some/thing</emphasis> and when\r
+        referenced, it recursively dereferences to this reference.\r
+        <emphasis><link linkend="def_HEAD">HEAD</link></emphasis> is a prime example of a symref. Symbolic\r
+        references are manipulated with the <xref linkend="git-symbolic-ref(1)"/>\r
+        command.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_tag" xreflabel="[def_tag]"/>tag\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A <link linkend="def_ref">ref</link> pointing to a <link linkend="def_tag_object">tag</link> or\r
+        <link linkend="def_commit_object">commit object</link>. In contrast to a <link linkend="def_head">head</link>,\r
+        a tag is not changed by a <link linkend="def_commit">commit</link>. Tags (not\r
+        <link linkend="def_tag_object">tag objects</link>) are stored in <literal>$GIT_DIR/refs/tags/</literal>. A\r
+        git tag has nothing to do with a Lisp tag (which would be\r
+        called an <link linkend="def_object_type">object type</link> in git&#8217;s context). A\r
+        tag is most typically used to mark a particular point in the\r
+        commit ancestry <link linkend="def_chain">chain</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_tag_object" xreflabel="[def_tag_object]"/>tag object\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        An <link linkend="def_object">object</link> containing a <link linkend="def_ref">ref</link> pointing to\r
+        another object, which can contain a message just like a\r
+        <link linkend="def_commit_object">commit object</link>. It can also contain a (PGP)\r
+        signature, in which case it is called a "signed tag object".\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_topic_branch" xreflabel="[def_topic_branch]"/>topic branch\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A regular git <link linkend="def_branch">branch</link> that is used by a developer to\r
+        identify a conceptual line of development. Since branches are very easy\r
+        and inexpensive, it is often desirable to have several small branches\r
+        that each contain very well defined concepts or small incremental yet\r
+        related changes.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_tracking_branch" xreflabel="[def_tracking_branch]"/>tracking branch\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A regular git <link linkend="def_branch">branch</link> that is used to follow changes from\r
+        another <link linkend="def_repository">repository</link>. A tracking\r
+        branch should not contain direct modifications or have local commits\r
+        made to it. A tracking branch can usually be\r
+        identified as the right-hand-side <link linkend="def_ref">ref</link> in a Pull:\r
+        <link linkend="def_refspec">refspec</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_tree" xreflabel="[def_tree]"/>tree\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        Either a <link linkend="def_working_tree">working tree</link>, or a <link linkend="def_tree_object">tree         object</link> together with the dependent <link linkend="def_blob_object">blob</link> and tree objects\r
+        (i.e. a stored representation of a working tree).\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_tree_object" xreflabel="[def_tree_object]"/>tree object\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        An <link linkend="def_object">object</link> containing a list of file names and modes along\r
+        with refs to the associated blob and/or tree objects. A\r
+        <link linkend="def_tree">tree</link> is equivalent to a <link linkend="def_directory">directory</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_tree-ish" xreflabel="[def_tree-ish]"/>tree-ish\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        A <link linkend="def_ref">ref</link> pointing to either a <link linkend="def_commit_object">commit         object</link>, a <link linkend="def_tree_object">tree object</link>, or a <link linkend="def_tag_object">tag         object</link> pointing to a tag or commit or tree object.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_unmerged_index" xreflabel="[def_unmerged_index]"/>unmerged index\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        An <link linkend="def_index">index</link> which contains unmerged\r
+        <link linkend="def_index_entry">index entries</link>.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_unreachable_object" xreflabel="[def_unreachable_object]"/>unreachable object\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        An <link linkend="def_object">object</link> which is not <link linkend="def_reachable">reachable</link> from a\r
+        <link linkend="def_branch">branch</link>, <link linkend="def_tag">tag</link>, or any other reference.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+<varlistentry>\r
+<term>\r
+<anchor id="def_working_tree" xreflabel="[def_working_tree]"/>working tree\r
+</term>\r
+<listitem>\r
+<simpara>\r
+        The tree of actual checked out files.  The working tree is\r
+        normally equal to the <link linkend="def_HEAD">HEAD</link> plus any local changes\r
+        that you have made but not yet committed.\r
+</simpara>\r
+</listitem>\r
+</varlistentry>\r
+</variablelist>\r
+</simplesect>\r
+<simplesect id="_see_also">\r
+<title>SEE ALSO</title>\r
+<simpara><xref linkend="gittutorial(7)"/>,\r
+<xref linkend="gittutorial-2(7)"/>,\r
+<xref linkend="gitcvs-migration(7)"/>,\r
+<ulink url="everyday.html">Everyday git</ulink>,\r
+<ulink url="user-manual.html">The Git User&#8217;s Manual</ulink></simpara>\r
+</simplesect>\r
+<simplesect id="_git">\r
+<title>GIT</title>\r
+<simpara>Part of the <xref linkend="git(1)"/> suite.</simpara>\r
+</simplesect>\r
+</article>\r