i think the most surprising-to-me decision we ended up making while writing this Git data model was to not mention the .git directory at all https://jvns.ca/blog/2026/01/08/a-data-model-for-git/
in the past i’ve taken the approach of “let’s learn how Git works by talking about how .git is structured”, but actually lots of Git data can be stored in multiple ways in .git (for example there are 2 ways branches can be stored) and actually for the most part it just isn’t that useful to know.