aboutsummaryrefslogtreecommitdiff
path: root/Documentation/git.txt
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@citi.umich.edu>2007-09-03 00:01:19 -0400
committerJ. Bruce Fields <bfields@citi.umich.edu>2007-09-15 22:17:24 -0400
commit40dac517ee09e2d0d5ae7b4f904f29b36fa82ef2 (patch)
treed3e04aff7a363395535a09e6ccf6d076fde2c4e1 /Documentation/git.txt
parentecd95b536e37e0a816d8c9832e04f61c3f1d4423 (diff)
downloadgit-40dac517ee09e2d0d5ae7b4f904f29b36fa82ef2.tar.gz
git-40dac517ee09e2d0d5ae7b4f904f29b36fa82ef2.tar.xz
documentation: replace Discussion section by link to user-manual chapter
The "Discussion" section has a lot of useful information, but is a little wordy, especially for an already-long man page, and is designed for an audience more of potential git hackers than users, which probably doesn't make as much sense as git matures. Also, I (perhaps foolishly) forked a version in the user manual, which has been significantly rewritten in an attempt to address some of the above problems. So, remove this section and replace it by a (very terse) summary of the original material--my attempt at the World's Shortest Git Overview--and a reference to the appropriate chapter of the user manual. It's unfortunate to remove something that's been in this place for a long time, as some people may still depend on finding it there. But I think we'll want to do this some day anyway. Cc: Andreas Ericsson <ae@op5.se> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
Diffstat (limited to 'Documentation/git.txt')
-rw-r--r--Documentation/git.txt57
1 files changed, 53 insertions, 4 deletions
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 6f7db2935..a7cd91acc 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -134,9 +134,9 @@ FURTHER DOCUMENTATION
See the references above to get started using git. The following is
probably more detail than necessary for a first-time user.
-The <<Discussion,Discussion>> section below and the
-link:core-tutorial.html[Core tutorial] both provide introductions to the
-underlying git architecture.
+The link:user-manual.html#git-concepts[git concepts chapter of the
+user-manual] and the link:core-tutorial.html[Core tutorial] both provide
+introductions to the underlying git architecture.
See also the link:howto-index.html[howto] documents for some useful
examples.
@@ -474,7 +474,56 @@ for further details.
Discussion[[Discussion]]
------------------------
-include::core-intro.txt[]
+
+More detail on the following is available from the
+link:user-manual.html#git-concepts[git concepts chapter of the
+user-manual] and the link:core-tutorial.html[Core tutorial].
+
+A git project normally consists of a working directory with a ".git"
+subdirectory at the top level. The .git directory contains, among other
+things, a compressed object database representing the complete history
+of the project, an "index" file which links that history to the current
+contents of the working tree, and named pointers into that history such
+as tags and branch heads.
+
+The object database contains objects of three main types: blobs, which
+hold file data; trees, which point to blobs and other trees to build up
+directory heirarchies; and commits, which each reference a single tree
+and some number of parent commits.
+
+The commit, equivalent to what other systems call a "changeset" or
+"version", represents a step in the project's history, and each parent
+represents an immediately preceding step. Commits with more than one
+parent represent merges of independent lines of development.
+
+All objects are named by the SHA1 hash of their contents, normally
+written as a string of 40 hex digits. Such names are globally unique.
+The entire history leading up to a commit can be vouched for by signing
+just that commit. A fourth object type, the tag, is provided for this
+purpose.
+
+When first created, objects are stored in individual files, but for
+efficiency may later be compressed together into "pack files".
+
+Named pointers called refs mark interesting points in history. A ref
+may contain the SHA1 name of an object or the name of another ref. Refs
+with names beginning `ref/head/` contain the SHA1 name of the most
+recent commit (or "head") of a branch under developement. SHA1 names of
+tags of interest are stored under `ref/tags/`. A special ref named
+`HEAD` contains the name of the currently checked-out branch.
+
+The index file is initialized with a list of all paths and, for each
+path, a blob object and a set of attributes. The blob object represents
+the contents of the file as of the head of the current branch. The
+attributes (last modified time, size, etc.) are taken from the
+corresponding file in the working tree. Subsequent changes to the
+working tree can be found by comparing these attributes. The index may
+be updated with new content, and new commits may be created from the
+content stored in the index.
+
+The index is also capable of storing multiple entries (called "stages")
+for a given pathname. These stages are used to hold the various
+unmerged version of a file when a merge is in progress.
Authors
-------