objects. It contains the identifier and type of another object, a
symbolic name (of course!) and, optionally, a signature.
-Regardless of object type, all objects are share the following
-characteristics: they are all in deflated with zlib, and have a header
-that not only specifies their tag, but also size information about the
-data in the object. It's worth noting that the SHA1 hash that is used
-to name the object is the hash of the original data (historical note:
-in the dawn of the age of git this was the sha1 of the _compressed_
-object)
+Regardless of object type, all objects share the following
+characteristics: they are all deflated with zlib, and have a header
+that not only specifies their tag, but also provides size information
+about the data in the object. It's worth noting that the SHA1 hash
+that is used to name the object is the hash of the original data.
+(Historical note: in the dawn of the age of git the hash
+was the sha1 of the _compressed_ object)
As a result, the general consistency of an object can always be tested
independently of the contents or the type of the object: all objects can
directory tree, and renaming a file does not change the object that
file is associated with in any way.
-A blob is created with link:git-write-blob.html[git-write-blob] and
-it's data can be accessed by link:git-cat-file.html[git-cat-file]
+A blob is typically created when link:git-update-cache.html[git-update-cache]
+is run, and it's data can be accessed by link:git-cat-file.html[git-cat-file].
Tree Object
~~~~~~~~~~~
A tag is created with link:git-mktag.html[git-mktag] and
it's data can be accessed by link:git-cat-file.html[git-cat-file]
+
The "index" aka "Current Directory Cache"
-----------------------------------------
The index is a simple binary file, which contains an efficient