> If anything it sounds like maybe Git itself violates this, but I thought that Git hashed the difference between all the changes of a commit to get the hash. Some of the others sounds equally obvious at first glance.
Git creates hashed objects for individual file revisions, as well as tree objects referencing many individual file objects and commit objects which reference those tree objects.
Git creates hashed objects for individual file revisions, as well as tree objects referencing many individual file objects and commit objects which reference those tree objects.