> Each commit is simply a patch, you don't inspect the differences between two revisions, but
> instead you examine the contents of each commit.
I don't think that this is true. A commit in git _is_ a snapshot. It contains (amongst other things) a pointer the the whole tracked directory/file structure and its parent commit. git diff shows the differences between two commits (i.e. the patch).