Merge branch 'jc/pack-reuse'
[gitweb.git] / Documentation / glossary.txt
index 015d51018dd26642f8251d59c132d8bfc772e37e..02a9d9c18acaf1e6091049aaf6d2fd1f2490e573 100644 (file)
@@ -1,5 +1,5 @@
 object::
-       The unit of storage in GIT. It is uniquely identified by
+       The unit of storage in git. It is uniquely identified by
        the SHA1 of its contents. Consequently, an object can not
        be changed.
 
@@ -19,32 +19,38 @@ hash::
        In git's context, synonym to object name.
 
 object database::
-       Stores a set of "objects", and an individial object is identified
-       by its object name. The object usually live in $GIT_DIR/objects/.
+       Stores a set of "objects", and an individual object is identified
+       by its object name. The objects usually live in `$GIT_DIR/objects/`.
 
 blob object::
        Untyped object, e.g. the contents of a file.
 
 tree object::
-       An object containing a list of blob and/or tree objects.
-       (A tree usually corresponds to a directory without
-       subdirectories).
+       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 cache is a stored version of your working
+       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 cache contains multiple versions of
+       yet finished (i.e. if the index contains multiple versions of
        that file).
 
 unmerged index:
@@ -69,7 +75,7 @@ checkout::
        stored in the object database.
 
 commit::
-       As a verb: The action of storing the current state of the cache in the
+       As a verb: The action of storing the current state of the index in the
        object database. The result is a revision.
        As a noun: Short hand for commit object.
 
@@ -103,32 +109,46 @@ head::
 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/.
+       branch heads are stored in `$GIT_DIR/refs/heads/`.
+
+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.
+
+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.
 
 ref::
        A 40-byte hex representation of a SHA1 pointing to a particular
-       object. These may be stored in $GIT_DIR/refs/.
+       object. These may be stored in `$GIT_DIR/refs/`.
 
 head ref::
        A ref pointing to a head. Often, this is abbreviated to "head".
-       Head refs are stored in $GIT_DIR/refs/heads/.
+       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.
 
 ent::
-       Favorite synonym to "tree-ish" by some total geeks.
+       Favorite synonym to "tree-ish" by some total geeks. See
+       `http://en.wikipedia.org/wiki/Ent_(Middle-earth)` for an in-depth
+       explanation.
 
 tag object::
-       An object containing a ref pointing to another object. It can
-       contain a (PGP) signature, in which case it is called "signed
+       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
+       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.
@@ -139,10 +159,23 @@ 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.
+
 resolve::
        The action of fixing up manually what a failed automatic merge
        left behind.
 
+rewind::
+       To throw away part of the development, i.e. to assign the head to
+       an earlier revision.
+
+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.
+
 repository::
        A collection of refs together with an object database containing
        all objects, which are reachable from the refs, possibly accompanied
@@ -196,6 +229,10 @@ 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. 
 
+core git::
+       Fundamental data structures and utilities of git. Exposes only
+       limited source code management tools.
+
 plumbing::
        Cute name for core git.