Do we think of git commits as diffs, snapshots, and/or histories? –How git commits really work