this fall I worked with the core Git folks on writing an official data model for Git and it just got merged! I learned a few new things from writing it. https://github.com/git/git/blob/master/Documentation/gitdatamodel.adoc
@b0rk "A commit contains these required fields (..): The full directory structure of all the files in that version of the repository and each file’s contents, stored as the tree ID of the commit’s top-level directory" – Does this mean that a commit with a single line change can be extremely large if there are many (unchanged) files, because all IDs of every file, including the directory structure, are stored for each commit?
@markusr It depends: if all the files are in 1 single giant directory then yes it would take up a lot of space. But any directory which is unchanged can be reused between commits (using its tree ID) so usually you can share a lot of the directory structure with previous commits
@b0rk Ahhh. Thanks for your explanation!