X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=Documentation%2Fglossary.txt;h=02a9d9c18acaf1e6091049aaf6d2fd1f2490e573;hb=e23d0b4a4a55cc07e133905f0e9526b3550dd61b;hp=bac3c532fa86d3448d8bcd2eb9967472215d8297;hpb=ca08acca68bf0e1c89fcbc29af18b68ea7bf5c36;p=git.git diff --git a/Documentation/glossary.txt b/Documentation/glossary.txt index bac3c532..02a9d9c1 100644 --- a/Documentation/glossary.txt +++ b/Documentation/glossary.txt @@ -1,70 +1,83 @@ 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. +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:: - A 20-byte sequence (or 41-byte file containing the hex - representation and a newline). It is calculated from the - contents of an object by the Secure Hash Algorithm 1. + Synonym for object name. -object database:: - Stores a set of "objects", and an individial object is identified - by its SHA1 (its ref). The objects are either stored as single - files, or live inside of packs. +object identifier:: + Synonym for object name. -object name:: - Synonym for SHA1. +hash:: + In git's context, synonym to object name. + +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/`. blob object:: - Untyped object, i.e. the contents of a file. + 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). -cache:: - A collection of files whose contents are stored as objects. - The cache is a stored version of your working tree. Well, can - also contain a second, and even a third version of a working - tree, which are used when merging. +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. -cache entry:: +index entry:: The information regarding a particular file, stored in the index. - A cache entry can be unmerged, if a merge was started, but not - yet finished (i.e. if the cache contains multiple versions of + 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). -index:: - Contains information about the cache contents, in particular - timestamps and mode flags ("stat information") for the files - stored in the cache. An unmerged index is an index which contains - unmerged cache entries. +unmerged index: + An index which contains unmerged index entries. + +cache:: + Obsolete for: index. working tree:: - The set of files and directories currently being worked on. - Think "ls -laR" + 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" :-) -checkout:: - The action of updating the working tree to a revision which was - stored in the object database. - revision:: A particular state of files and directories which was stored in the object database. It is referenced by a commit object. +checkout:: + The action of updating the working tree to a revision which was + stored in the object database. + commit:: - 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. commit object:: An object which contains the information about a particular @@ -72,14 +85,15 @@ 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. + 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. -ent:: - Favorite synonym to "tree-ish" by some total geeks. - clean:: A working tree is clean, if it corresponds to the revision referenced by the current head. @@ -94,32 +108,50 @@ head:: branch:: A non-cyclical graph of revisions, i.e. the complete history of - a particular revision, which does not (yet) have children, which - is called the branch head. The branch heads are stored in - $GIT_DIR/refs/heads/. + a particular revision, which is called the branch head. The + 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 are 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 commit or tree object. + tag object pointing to a tag or commit or tree object. + +ent:: + 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. merge:: To merge branches means to try to accumulate the changes since a @@ -127,15 +159,37 @@ 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. A repository can + 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. +git archive:: + Synonym for repository (for arch people). + +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. + alternate object database:: Via the alternates mechanism, a repository can inherit part of its object database from another object database, which is called @@ -150,10 +204,6 @@ chain:: 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 @@ -176,8 +226,12 @@ pack:: space or to transmit them efficiently). pack index:: - Contains offsets into a pack, so the pack can be used instead of - the unpacked objects. + 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. @@ -196,3 +250,4 @@ SCM:: dircache:: You are *waaaaay* behind. +