Autogenerated HTML docs for v1.3.2-g5892
authorJunio C Hamano <junio@hera.kernel.org>
Thu, 4 May 2006 08:01:43 +0000 (08:01 +0000)
committerJunio C Hamano <junio@hera.kernel.org>
Thu, 4 May 2006 08:01:43 +0000 (08:01 +0000)
config.txt
git-count-objects.html
git-count-objects.txt
git-repo-config.html
git-repo-config.txt
glossary.html
glossary.txt

index b27b0d5..d1a4bec 100644 (file)
@@ -64,9 +64,11 @@ core.ignoreStat::
        slow, such as Microsoft Windows.  See gitlink:git-update-index[1].
        False by default.
 
-core.onlyUseSymrefs::
-       Always use the "symref" format instead of symbolic links for HEAD
-       and other symbolic reference files. True by default.
+core.preferSymlinkRefs::
+       Instead of the default "symref" format for HEAD
+       and other symbolic reference files, use symbolic links.
+       This is sometimes needed to work with old scripts that
+       expect HEAD to be a symbolic link.
 
 core.repositoryFormatVersion::
        Internal variable identifying the repository format and layout
index 6dc8744..b3af15b 100644 (file)
@@ -272,13 +272,29 @@ git-count-objects(1) Manual Page
 </div>\r
 <h2>SYNOPSIS</h2>\r
 <div class="sectionbody">\r
-<p><em>git-count-objects</em></p>\r
+<p><em>git-count-objects</em> [-v]</p>\r
 </div>\r
 <h2>DESCRIPTION</h2>\r
 <div class="sectionbody">\r
 <p>This counts the number of unpacked object files and disk space consumed by\r
 them, to help you decide when it is a good time to repack.</p>\r
 </div>\r
+<h2>OPTIONS</h2>\r
+<div class="sectionbody">\r
+<dl>\r
+<dt>\r
+-v\r
+</dt>\r
+<dd>\r
+<p>\r
+        In addition to the number of loose objects and disk\r
+        space consumed, it reports the number of in-pack\r
+        objects, and number of objects that can be removed by\r
+        running <tt>git-prune-packed</tt>.\r
+</p>\r
+</dd>\r
+</dl>\r
+</div>\r
 <h2>Author</h2>\r
 <div class="sectionbody">\r
 <p>Written by Junio C Hamano &lt;junkio@cox.net&gt;</p>\r
@@ -293,7 +309,7 @@ them, to help you decide when it is a good time to repack.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 10-Mar-2006 00:31:23 UTC\r
+Last updated 04-May-2006 08:01:36 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 47216f4..198ce77 100644 (file)
@@ -7,13 +7,23 @@ git-count-objects - Reports on unpacked objects
 
 SYNOPSIS
 --------
-'git-count-objects'
+'git-count-objects' [-v]
 
 DESCRIPTION
 -----------
 This counts the number of unpacked object files and disk space consumed by
 them, to help you decide when it is a good time to repack.
 
+
+OPTIONS
+-------
+-v::
+       In addition to the number of loose objects and disk
+       space consumed, it reports the number of in-pack
+       objects, and number of objects that can be removed by
+       running `git-prune-packed`.
+
+
 Author
 ------
 Written by Junio C Hamano <junkio@cox.net>
index db46053..66606be 100644 (file)
@@ -338,7 +338,7 @@ you try to unset/set an option for which multiple lines match.
 <dd>\r
 <p>\r
         Default behaviour is to replace at most one line. This replaces\r
-        all lines matching the key (and optionally the value_regex)\r
+        all lines matching the key (and optionally the value_regex).\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -360,6 +360,14 @@ you try to unset/set an option for which multiple lines match.
 </p>\r
 </dd>\r
 <dt>\r
+--get-regexp\r
+</dt>\r
+<dd>\r
+<p>\r
+        Like --get-all, but interprets the name as a regular expression.\r
+</p>\r
+</dd>\r
+<dt>\r
 --unset\r
 </dt>\r
 <dd>\r
@@ -558,12 +566,14 @@ core.ignoreStat
 </p>\r
 </dd>\r
 <dt>\r
-core.onlyUseSymrefs\r
+core.preferSymlinkRefs\r
 </dt>\r
 <dd>\r
 <p>\r
-        Always use the "symref" format instead of symbolic links for HEAD\r
-        and other symbolic reference files. True by default.\r
+        Instead of the default "symref" format for HEAD\r
+        and other symbolic reference files, use symbolic links.\r
+        This is sometimes needed to work with old scripts that\r
+        expect HEAD to be a symbolic link.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -819,7 +829,7 @@ imap
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 27-Apr-2006 20:10:38 UTC\r
+Last updated 04-May-2006 08:01:37 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 566cfa1..ddcf523 100644 (file)
@@ -49,7 +49,7 @@ OPTIONS
 
 --replace-all::
        Default behaviour is to replace at most one line. This replaces
-       all lines matching the key (and optionally the value_regex)
+       all lines matching the key (and optionally the value_regex).
 
 --get::
        Get the value for a given key (optionally filtered by a regex
@@ -59,6 +59,9 @@ OPTIONS
        Like get, but does not fail if the number of values for the key
        is not exactly one.
 
+--get-regexp::
+       Like --get-all, but interprets the name as a regular expression.
+
 --unset::
        Remove the line matching the key from .git/config.
 
index 00f2633..0c45a4f 100644 (file)
@@ -3,7 +3,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">\r
 <head>\r
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />\r
-<meta name="generator" content="AsciiDoc 7.0.1" />\r
+<meta name="generator" content="AsciiDoc 7.0.2" />\r
 <style type="text/css">\r
 /* Debug borders */\r
 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
@@ -276,6 +276,22 @@ div.exampleblock-content {
 </p>\r
 </dd>\r
 <dt>\r
+<a id="ref_bare_repository"></a>bare repository\r
+</dt>\r
+<dd>\r
+<p>\r
+        A <a href="#ref_bare_repository">bare repository</a> is normally an appropriately\r
+        named <a href="#ref_directory">directory</a> with a <tt>.git</tt> suffix that does not\r
+        have a locally checked-out copy of any of the files under\r
+        <a href="#ref_revision">revision</a> control. That is, all of the <tt>git</tt>\r
+        administrative and control files that would normally be present in the\r
+        hidden <tt>.git</tt> sub-<a href="#ref_directory">directory</a> are directly present in\r
+        the <tt><a href="#ref_repository">repository</a>.git</tt> <a href="#ref_directory">directory</a>\r
+        instead, and no other files are present and checked out. Usually\r
+        publishers of public repositories make bare repositories available.\r
+</p>\r
+</dd>\r
+<dt>\r
 <a id="ref_blob_object"></a>blob object\r
 </dt>\r
 <dd>\r
@@ -333,13 +349,26 @@ div.exampleblock-content {
 </p>\r
 </dd>\r
 <dt>\r
+<a id="ref_cherry-picking"></a>cherry-picking\r
+</dt>\r
+<dd>\r
+<p>\r
+        In <a href="#ref_SCM">SCM</a> 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 different codebase. In GIT, this is\r
+        performed by "git cherry-pick" command to extract the change introduced\r
+        by an existing <a href="#ref_commit">commit</a> and to record it based on the tip\r
+        of the current <a href="#ref_branch">branch</a> as a new <a href="#ref_commit">commit</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
 <a id="ref_clean"></a>clean\r
 </dt>\r
 <dd>\r
 <p>\r
         A <a href="#ref_working_tree">working tree</a> is <a href="#ref_clean">clean</a>, if it\r
         corresponds to the <a href="#ref_revision">revision</a> referenced by the current\r
-        <a href="#ref_head">head</a>.\r
+        <a href="#ref_head">head</a>. Also see "<a href="#ref_dirty">dirty</a>".\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -423,6 +452,21 @@ div.exampleblock-content {
 </p>\r
 </dd>\r
 <dt>\r
+<a id="ref_fast_forward"></a>fast forward\r
+</dt>\r
+<dd>\r
+<p>\r
+        A fast-forward is a special type of <a href="#ref_merge">merge</a> where you have a\r
+        <a href="#ref_revision">revision</a> and you are "merging" another\r
+        <a href="#ref_branch">branch</a>'s changes that happen to be a descendant of what\r
+        you have. In such these cases, you do not make a new <a href="#ref_merge">merge</a>\r
+        <a href="#ref_commit">commit</a> but instead just update to his\r
+        <a href="#ref_revision">revision</a>. This will happen frequently on a\r
+        <a href="#ref_tracking_branch">tracking branch</a> of a remote\r
+        <a href="#ref_repository">repository</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
 <a id="ref_fetch"></a>fetch\r
 </dt>\r
 <dd>\r
@@ -480,6 +524,20 @@ div.exampleblock-content {
 </p>\r
 </dd>\r
 <dt>\r
+<a id="ref_hook"></a>hook\r
+</dt>\r
+<dd>\r
+<p>\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 <a href="#ref_hook">hook</a> scripts are found in the\r
+        <tt>$GIT_DIR/hooks/</tt> <a href="#ref_directory">directory</a>, and are enabled by simply\r
+        making them executable.\r
+</p>\r
+</dd>\r
+<dt>\r
 <a id="ref_index"></a>index\r
 </dt>\r
 <dd>\r
@@ -507,11 +565,11 @@ div.exampleblock-content {
 </dt>\r
 <dd>\r
 <p>\r
-        The default <a href="#ref_branch">branch</a>. Whenever you create a git\r
+        The default development <a href="#ref_branch">branch</a>. Whenever you create a git\r
         <a href="#ref_repository">repository</a>, a <a href="#ref_branch">branch</a> named\r
         "<a href="#ref_master">master</a>" is created, and becomes the active\r
         <a href="#ref_branch">branch</a>. In most cases, this contains the local\r
-        development.\r
+        development, though that is purely conventional and not required.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -580,11 +638,11 @@ div.exampleblock-content {
 </dt>\r
 <dd>\r
 <p>\r
-        The default upstream <a href="#ref_branch">branch</a>. Most projects have one\r
-        upstream project which they track, and by default\r
-        <em><a href="#ref_origin">origin</a></em> is used for that purpose. New updates from\r
-        upstream will be fetched into this <a href="#ref_branch">branch</a>; you should\r
-        never <a href="#ref_commit">commit</a> to it yourself.\r
+        The default upstream <a href="#ref_tracking_branch">tracking branch</a>. Most\r
+        projects have at least one upstream project which they track. By default\r
+        <em><a href="#ref_origin">origin</a></em> is used for that purpose. New upstream updates\r
+        will be fetched into this <a href="#ref_branch">branch</a>; you should never\r
+        <a href="#ref_commit">commit</a> to it yourself.\r
 </p>\r
 </dd>\r
 <dt>\r
@@ -617,6 +675,18 @@ div.exampleblock-content {
 </p>\r
 </dd>\r
 <dt>\r
+<a id="ref_pickaxe"></a>pickaxe\r
+</dt>\r
+<dd>\r
+<p>\r
+        The term <a href="#ref_pickaxe">pickaxe</a> refers to an option to the diffcore\r
+        routines that help select changes that add or delete a given text\r
+        string. With the &#8212;<a href="#ref_pickaxe">pickaxe</a>-all option, it can be used to\r
+        view the full <a href="#ref_changeset">changeset</a> that introduced or removed,\r
+        say, a particular line of text. See <a href="git-diff.html">git-diff(1)</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
 <a id="ref_plumbing"></a>plumbing\r
 </dt>\r
 <dd>\r
@@ -687,12 +757,32 @@ div.exampleblock-content {
 </dt>\r
 <dd>\r
 <p>\r
-        A 40-byte hex representation of a <a href="#ref_SHA1">SHA1</a> pointing to a\r
-        particular <a href="#ref_object">object</a>. These may be stored in\r
+        A 40-byte hex representation of a <a href="#ref_SHA1">SHA1</a> or a name that\r
+        denotes a particular <a href="#ref_object">object</a>. These may be stored in\r
         <tt>$GIT_DIR/refs/</tt>.\r
 </p>\r
 </dd>\r
 <dt>\r
+<a id="ref_refspec"></a>refspec\r
+</dt>\r
+<dd>\r
+<p>\r
+        A <a href="#ref_refspec">refspec</a> is used by <a href="#ref_fetch">fetch</a> and\r
+        <a href="#ref_push">push</a> to describe the mapping between remote <a href="#ref_ref">ref</a>\r
+        and local <a href="#ref_ref">ref</a>. They are combined with a colon in the format\r
+        &lt;src&gt;:&lt;dst&gt;, preceded by an optional plus sign, +. For example: <tt>git\r
+        <a href="#ref_fetch">fetch</a> $URL\r
+        refs/heads/<a href="#ref_master">master</a>:refs/heads/<a href="#ref_origin">origin</a></tt> means\r
+        "grab the <a href="#ref_master">master</a> <a href="#ref_branch">branch</a> <a href="#ref_head">head</a>\r
+        from the $URL and store it as my <a href="#ref_origin">origin</a>\r
+        <a href="#ref_branch">branch</a> <a href="#ref_head">head</a>". And <tt>git <a href="#ref_push">push</a>\r
+        $URL refs/heads/<a href="#ref_master">master</a>:refs/heads/to-upstream</tt> means\r
+        "publish my <a href="#ref_master">master</a> <a href="#ref_branch">branch</a>\r
+        <a href="#ref_head">head</a> as to-upstream <a href="#ref_master">master</a> <a href="#ref_head">head</a>\r
+        at $URL". See also <a href="git-push.html">git-push(1)</a>\r
+</p>\r
+</dd>\r
+<dt>\r
 <a id="ref_repository"></a>repository\r
 </dt>\r
 <dd>\r
@@ -774,6 +864,30 @@ div.exampleblock-content {
 </p>\r
 </dd>\r
 <dt>\r
+<a id="ref_topic_branch"></a>topic branch\r
+</dt>\r
+<dd>\r
+<p>\r
+        A regular git <a href="#ref_branch">branch</a> 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
+</p>\r
+</dd>\r
+<dt>\r
+<a id="ref_tracking_branch"></a>tracking branch\r
+</dt>\r
+<dd>\r
+<p>\r
+        A regular git <a href="#ref_branch">branch</a> that is used to follow changes from\r
+        another <a href="#ref_repository">repository</a>. A <a href="#ref_tracking_branch">tracking         branch</a> should not contain direct modifications or have local commits\r
+        made to it. A <a href="#ref_tracking_branch">tracking branch</a> can usually be\r
+        identified as the right-hand-side <a href="#ref_ref">ref</a> in a Pull:\r
+        <a href="#ref_refspec">refspec</a>.\r
+</p>\r
+</dd>\r
+<dt>\r
 <a id="ref_tree"></a>tree\r
 </dt>\r
 <dd>\r
@@ -824,7 +938,7 @@ the git-list &lt;git@vger.kernel.org&gt;.</p>
 </div>\r
 <div id="footer">\r
 <div id="footer-text">\r
-Last updated 10-Jan-2006 16:53:50 PDT\r
+Last updated 04-May-2006 08:01:37 UTC\r
 </div>\r
 </div>\r
 </body>\r
index 02a9d9c..39c90ad 100644 (file)
@@ -1,79 +1,57 @@
-object::
-       The unit of storage in git. It is uniquely identified by
-       the SHA1 of its contents. Consequently, an object can not
-       be changed.
-
-object name::
-       The unique identifier of an object. The hash of the object's contents
-       using the Secure Hash Algorithm 1 and usually represented by the 40
-       character hexadecimal encoding of the hash of the object (possibly
-       followed by a white space).
-
-SHA1::
-       Synonym for object name.
-
-object identifier::
-       Synonym for object name.
-
-hash::
-       In git's context, synonym to object name.
+alternate object database::
+       Via the alternates mechanism, a repository can inherit part of its
+       object database from another object database, which is called
+       "alternate".
 
-object database::
-       Stores a set of "objects", and an individual object is identified
-       by its object name. The objects usually live in `$GIT_DIR/objects/`.
+bare repository::
+       A bare repository is normally an appropriately named
+       directory with a `.git` suffix that does not have a
+       locally checked-out copy of any of the files under revision
+       control.  That is, all of the `git` administrative and
+       control files that would normally be present in the
+       hidden `.git` sub-directory are directly present in
+       the `repository.git` directory instead, and no other files
+       are present and checked out.  Usually publishers of public
+       repositories make bare repositories available.
 
 blob object::
        Untyped object, e.g. the contents of a file.
 
-tree object::
-       An object containing a list of file names and modes along with refs
-       to the associated blob and/or tree objects. A tree is equivalent
-       to a directory.
-
-tree::
-       Either a working tree, or a tree object together with the
-       dependent blob and tree objects (i.e. a stored representation
-       of a working tree).
-
-DAG::
-       Directed acyclic graph. The commit objects form a directed acyclic
-       graph, because they have parents (directed), and the graph of commit
-       objects is acyclic (there is no chain which begins and ends with the
-       same object).
-
-index::
-       A collection of files with stat information, whose contents are
-       stored as objects. The index is a stored version of your working
-       tree. Truth be told, it can also contain a second, and even a third
-       version of a working tree, which are used when merging.
-
-index entry::
-       The information regarding a particular file, stored in the index.
-       An index entry can be unmerged, if a merge was started, but not
-       yet finished (i.e. if the index contains multiple versions of
-       that file).
-
-unmerged index:
-       An index which contains unmerged index entries.
+branch::
+       A non-cyclical graph of revisions, i.e. the complete history of
+       a particular revision, which is called the branch head. The
+       branch heads are stored in `$GIT_DIR/refs/heads/`.
 
 cache::
        Obsolete for: index.
 
-working tree::
-       The set of files and directories currently being worked on,
-       i.e. you can work in your working tree without using git at all.
-
-directory::
-       The list you get with "ls" :-)
+chain::
+       A list of objects, where each object in the list contains a
+       reference to its successor (for example, the successor of a commit
+       could be one of its parents).
 
-revision::
-       A particular state of files and directories which was stored in
-       the object database. It is referenced by a commit object.
+changeset::
+       BitKeeper/cvsps speak for "commit". Since git does not store
+       changes, but states, it really does not make sense to use
+       the term "changesets" with git.
 
 checkout::
        The action of updating the working tree to a revision which was
        stored in the object database.
 
+cherry-picking::
+       In SCM jargon, "cherry pick" means to choose a subset of
+       changes out of a series of changes (typically commits)
+       and record them as a new series of changes on top of
+       different codebase.  In GIT, this is performed by
+       "git cherry-pick" command to extract the change
+       introduced by an existing commit and to record it based
+       on the tip of the current branch as a new commit.
+
+clean::
+       A working tree is clean, if it corresponds to the revision
+       referenced by the current head.  Also see "dirty".
+
 commit::
        As a verb: The action of storing the current state of the index in the
        object database. The result is a revision.
@@ -85,73 +63,90 @@ commit object::
        tree object which corresponds to the top directory of the
        stored revision.
 
-parent::
-       A commit object contains a (possibly empty) list of the logical
-       predecessor(s) in the line of development, i.e. its parents.
+core git::
+       Fundamental data structures and utilities of git. Exposes only
+       limited source code management tools.
 
-changeset::
-       BitKeeper/cvsps speak for "commit". Since git does not store
-       changes, but states, it really does not make sense to use
-       the term "changesets" with git.
+DAG::
+       Directed acyclic graph. The commit objects form a directed acyclic
+       graph, because they have parents (directed), and the graph of commit
+       objects is acyclic (there is no chain which begins and ends with the
+       same object).
 
-clean::
-       A working tree is clean, if it corresponds to the revision
-       referenced by the current head.
+dircache::
+       You are *waaaaay* behind.
 
 dirty::
        A working tree is said to be dirty if it contains modifications
        which have not been committed to the current branch.
 
-head::
-       The top of a branch. It contains a ref to the corresponding
-       commit object.
+directory::
+       The list you get with "ls" :-)
 
-branch::
-       A non-cyclical graph of revisions, i.e. the complete history of
-       a particular revision, which is called the branch head. The
-       branch heads are stored in `$GIT_DIR/refs/heads/`.
+ent::
+       Favorite synonym to "tree-ish" by some total geeks. See
+       `http://en.wikipedia.org/wiki/Ent_(Middle-earth)` for an in-depth
+       explanation.
 
-master::
-       The default branch. Whenever you create a git repository, a branch
-       named "master" is created, and becomes the active branch. In most
-       cases, this contains the local development.
+fast forward::
+       A fast-forward is a special type of merge where you have
+       a revision and you are "merging" another branch's changes
+       that happen to be a descendant of what you have.
+       In such these cases, you do not make a new merge commit but
+       instead just update to his revision. This will happen
+       frequently on a tracking branch of a remote repository.
 
-origin::
-       The default upstream branch. Most projects have one upstream
-       project which they track, and by default 'origin' is used for
-       that purpose.  New updates from upstream will be fetched into
-       this branch; you should never commit to it yourself.
+fetch::
+       Fetching a branch means to get the branch's head ref from a
+       remote repository, to find out which objects are missing from
+       the local object database, and to get them, too.
 
-ref::
-       A 40-byte hex representation of a SHA1 pointing to a particular
-       object. These may be stored in `$GIT_DIR/refs/`.
+file system::
+       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.
+
+git archive::
+       Synonym for repository (for arch people).
+
+hash::
+       In git's context, synonym to object name.
+
+head::
+       The top of a branch. It contains a ref to the corresponding
+       commit object.
 
 head ref::
        A ref pointing to a head. Often, this is abbreviated to "head".
        Head refs are stored in `$GIT_DIR/refs/heads/`.
 
-tree-ish::
-       A ref pointing to either a commit object, a tree object, or a
-       tag object pointing to a tag or commit or tree object.
+hook::
+       During the normal execution of several git commands,
+       call-outs are made to optional scripts that allow
+       a developer to add functionality or checking.
+       Typically, the hooks allow for a command to be pre-verified
+       and potentially aborted, and allow for a post-notification
+       after the operation is done.
+       The hook scripts are found in the `$GIT_DIR/hooks/` directory,
+       and are enabled by simply making them executable.
 
-ent::
-       Favorite synonym to "tree-ish" by some total geeks. See
-       `http://en.wikipedia.org/wiki/Ent_(Middle-earth)` for an in-depth
-       explanation.
+index::
+       A collection of files with stat information, whose contents are
+       stored as objects. The index is a stored version of your working
+       tree. Truth be told, it can also contain a second, and even a third
+       version of a working tree, which are used when merging.
 
-tag object::
-       An object containing a ref pointing to another object, which can
-       contain a message just like a commit object. It can also
-       contain a (PGP) signature, in which case it is called a "signed
-       tag object".
+index entry::
+       The information regarding a particular file, stored in the index.
+       An index entry can be unmerged, if a merge was started, but not
+       yet finished (i.e. if the index contains multiple versions of
+       that file).
 
-tag::
-       A ref pointing to a tag or commit object. In contrast to a head,
-       a tag is not changed by a commit. Tags (not tag objects) are
-       stored in `$GIT_DIR/refs/tags/`. A git tag has nothing to do with
-       a Lisp tag (which is called object type in git's context).
-       A tag is most typically used to mark a particular point in the
-       commit ancestry chain.
+master::
+       The default development branch. Whenever you create a git
+       repository, a branch named "master" is created, and becomes
+       the active branch. In most cases, this contains the local
+       development, though that is purely conventional and not required.
 
 merge::
        To merge branches means to try to accumulate the changes since a
@@ -159,55 +154,65 @@ merge::
        merge uses heuristics to accomplish that. Evidently, an automatic
        merge can fail.
 
-octopus::
-       To merge more than two branches. Also denotes an intelligent
-       predator.
+object::
+       The unit of storage in git. It is uniquely identified by
+       the SHA1 of its contents. Consequently, an object can not
+       be changed.
 
-resolve::
-       The action of fixing up manually what a failed automatic merge
-       left behind.
+object database::
+       Stores a set of "objects", and an individual object is identified
+       by its object name. The objects usually live in `$GIT_DIR/objects/`.
 
-rewind::
-       To throw away part of the development, i.e. to assign the head to
-       an earlier revision.
+object identifier::
+       Synonym for object name.
 
-rebase::
-       To clean a branch by starting from the head of the main line of
-       development ("master"), and reapply the (possibly cherry-picked)
-       changes from that branch.
+object name::
+       The unique identifier of an object. The hash of the object's contents
+       using the Secure Hash Algorithm 1 and usually represented by the 40
+       character hexadecimal encoding of the hash of the object (possibly
+       followed by a white space).
 
-repository::
-       A collection of refs together with an object database containing
-       all objects, which are reachable from the refs, possibly accompanied
-       by meta data from one or more porcelains. A repository can
-       share an object database with other repositories.
+object type:
+       One of the identifiers "commit","tree","tag" and "blob" describing
+       the type of an object.
 
-git archive::
-       Synonym for repository (for arch people).
+octopus::
+       To merge more than two branches. Also denotes an intelligent
+       predator.
 
-file system::
-       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.
+origin::
+       The default upstream tracking branch. Most projects have at
+       least one upstream project which they track. By default
+       'origin' is used for that purpose.  New upstream updates
+       will be fetched into this branch; you should never commit
+       to it yourself.
 
-alternate object database::
-       Via the alternates mechanism, a repository can inherit part of its
-       object database from another object database, which is called
-       "alternate".
+pack::
+       A set of objects which have been compressed into one file (to save
+       space or to transmit them efficiently).
 
-reachable::
-       An object is reachable from a ref/commit/tree/tag, if there is a
-       chain leading from the latter to the former.
+pack index::
+       The list of identifiers, and other information, of the objects in a
+       pack, to assist in efficiently accessing the contents of a pack.
 
-chain::
-       A list of objects, where each object in the list contains a
-       reference to its successor (for example, the successor of a commit
-       could be one of its parents).
+parent::
+       A commit object contains a (possibly empty) list of the logical
+       predecessor(s) in the line of development, i.e. its parents.
 
-fetch::
-       Fetching a branch means to get the branch's head ref from a
-       remote repository, to find out which objects are missing from
-       the local object database, and to get them, too.
+pickaxe::
+       The term pickaxe refers to an option to the diffcore routines
+       that help select changes that add or delete a given text string.
+       With the --pickaxe-all option, it can be used to view the
+       full changeset that introduced or removed, say, a particular
+       line of text.  See gitlink:git-diff[1].
+
+plumbing::
+       Cute name for core git.
+
+porcelain::
+       Cute name for programs and program suites depending on core git,
+       presenting a high level access to core git. Porcelains expose
+       more of a SCM interface than the plumbing.
 
 pull::
        Pulling a branch means to fetch it and merge it.
@@ -221,33 +226,101 @@ push::
        the remote head ref. If the remote head is not an ancestor to the
        local head, the push fails.
 
-pack::
-       A set of objects which have been compressed into one file (to save
-       space or to transmit them efficiently).
+reachable::
+       An object is reachable from a ref/commit/tree/tag, if there is a
+       chain leading from the latter to the former.
 
-pack index::
-       The list of identifiers, and other information, of the objects in a
-       pack, to assist in efficiently accessing the contents of a pack. 
+rebase::
+       To clean a branch by starting from the head of the main line of
+       development ("master"), and reapply the (possibly cherry-picked)
+       changes from that branch.
 
-core git::
-       Fundamental data structures and utilities of git. Exposes only
-       limited source code management tools.
+ref::
+       A 40-byte hex representation of a SHA1 or a name that denotes
+       a particular object. These may be stored in `$GIT_DIR/refs/`.
+
+refspec::
+       A refspec is used by fetch and push to describe the mapping
+       between remote ref and local ref.  They are combined with
+       a colon in the format <src>:<dst>, preceded by an optional
+       plus sign, +.  For example:
+       `git fetch $URL refs/heads/master:refs/heads/origin`
+       means "grab the master branch head from the $URL and store
+       it as my origin branch head".
+       And `git push $URL refs/heads/master:refs/heads/to-upstream`
+       means "publish my master branch head as to-upstream master head
+       at $URL".   See also gitlink:git-push[1]
 
-plumbing::
-       Cute name for core git.
+repository::
+       A collection of refs together with an object database containing
+       all objects, which are reachable from the refs, possibly accompanied
+       by meta data from one or more porcelains. A repository can
+       share an object database with other repositories.
 
-porcelain::
-       Cute name for programs and program suites depending on core git,
-       presenting a high level access to core git. Porcelains expose
-       more of a SCM interface than the plumbing.
+resolve::
+       The action of fixing up manually what a failed automatic merge
+       left behind.
 
-object type:
-       One of the identifiers "commit","tree","tag" and "blob" describing
-       the type of an object.
+revision::
+       A particular state of files and directories which was stored in
+       the object database. It is referenced by a commit object.
+
+rewind::
+       To throw away part of the development, i.e. to assign the head to
+       an earlier revision.
 
 SCM::
        Source code management (tool).
 
-dircache::
-       You are *waaaaay* behind.
+SHA1::
+       Synonym for object name.
+
+topic branch::
+       A regular git branch that is used by a developer to
+       identify a conceptual line of development.  Since branches
+       are very easy and inexpensive, it is often desirable to
+       have several small branches that each contain very well
+       defined concepts or small incremental yet related changes.
+
+tracking branch::
+       A regular git branch that is used to follow changes from
+       another repository.  A tracking branch should not contain
+       direct modifications or have local commits made to it.
+       A tracking branch can usually be identified as the
+       right-hand-side ref in a Pull: refspec.
+
+tree object::
+       An object containing a list of file names and modes along with refs
+       to the associated blob and/or tree objects. A tree is equivalent
+       to a directory.
+
+tree::
+       Either a working tree, or a tree object together with the
+       dependent blob and tree objects (i.e. a stored representation
+       of a working tree).
+
+tree-ish::
+       A ref pointing to either a commit object, a tree object, or a
+       tag object pointing to a tag or commit or tree object.
+
+tag object::
+       An object containing a ref pointing to another object, which can
+       contain a message just like a commit object. It can also
+       contain a (PGP) signature, in which case it is called a "signed
+       tag object".
+
+tag::
+       A ref pointing to a tag or commit object. In contrast to a head,
+       a tag is not changed by a commit. Tags (not tag objects) are
+       stored in `$GIT_DIR/refs/tags/`. A git tag has nothing to do with
+       a Lisp tag (which is called object type in git's context).
+       A tag is most typically used to mark a particular point in the
+       commit ancestry chain.
+
+unmerged index:
+       An index which contains unmerged index entries.
+
+working tree::
+       The set of files and directories currently being worked on,
+       i.e. you can work in your working tree without using git at all.