This post is more of a developer tip.
Charles Duan has written one of the best description of Git data model and Git commands explaining how they manipulate the data model under the hood.
As he puts it
you can only really use Git if you understand how Git works.
Now go read it here.
Thank you Charles for such a nice write up!