Internals:
*Repo
*Refs
*Moving HEAD
When you run git checkout on a commit (specified by hash or ref) you’re telling git to make your working directory look like how it did when the snapshot was taken.
tree inside the commit
HEAD to point to the specified hash or ref