@b0rk
Saved. In case I ever get lost inside a git repository and need a map to find my way home.
Seriously - if I ever find that I need a tool that doesn't exist and need to write it myself.
There are two kinds of objects I didn't see mentioned - merges and packed objects. I'm guessing that merges look just like commits, and pack objects are "binary" but I have not looked.
Also, diffs aren't explained, but I believe they don't actually exist, though then I don't understand how the packed history is often smaller than the checked out head.
@leeloo yeah merges are commits with multiple parents!
pack files are a storage optimization for storing objects (commits, trees, blobs). I left it out because it’s really an implementation detail /optimization IMO
and like you said diffs aren’t stored in .git, they’re computed on the fly