A commit in Git: Is it a snapshot/state/image or is it a change/diff/patch/delta?
<ul>
<li>Some operations in Git (e.g. <code>checkout</code>) appear to assume that a commit is a snapshot or state of the working tree.</li>
<li>Other operations in Git (e.g. <code>rebase</code>) appear to assume that a commit is a change: a kind of operator that can be applied to working trees.</li>
</ul>

<p>So what is a Git commit, really?</p>