Most Git confusion comes from treating it as a magic undo button instead of understanding what a commit, branch, and merge actually are. Once the underlying model clicks, most Git commands stop being memorized incantations and start being the obvious way to ask for what you want. This is a complete reference, from the data model up through the workflows built on top of it.