Four object types
Git stores everything as content-addressable objects under .git/objects. There are four types: blob (file contents), tree (directory listing of blobs and subtrees), commit (snapshot pointer with author, committer, message, and parents), and tag (annotated tag with signer and message). Each is named by the SHA-1 (or SHA-256) of its content.