Made of:
- a tree: PWD state, not a diff, but rather an efficient representation of the full state
- a comment
- commiter info
- hash of parent commit Process:
- if file didn't change: add compressed filename (hash) to the snapshot
- if file changed: compress it, store it in .git/objects, add filename hash to snapshot