Nearly everything in [[Git]] is an object stored in a [[Content Addressable]] storage system. There are 4 types of objects: blobs, trees, commits, and annotated tags. Everything else a ref or built on refs and objects. Trees are canonically serialized manifests of other objects (excluding tag objects). Folder hierarchies are represented as nested tree objects with blobs as the files. The `mktree` command takes in a tree object formatted text and saves it to the object store. Use `cat-file -p` to print the raw object. sha1 hashes are used currently, but eventually will move to [[SHA-256]].