Anyway, I felt like I needed to save my comment here too, because it fits with my train of thought about Software as a culture.
I've complained about GIT's idiosyncrasies myself more than a few times and came to a subtle realization thanks to a quip I read somewhere by Linus T. GIT is not an SCM or VCS; GIT is a collection of tools and interface primitives from which to construct such a system.
People new to GIT think it is an engine. GIT is nuts and bolts and gaskets and pistons and carburators. The collection is more than half assembled so it looks like an engine. Popular articles promoting GIT, and to some extent the documentation pages, can perpetuate the misconception by talking about GIT from the bottom up. But GIT is more of a bare-bones kit.
The advantage of the primitives approach is that it allows a diversity of practices and promotes a kind of fecundity in its ecosystem. It is somewhat, but not completely, process agnostic. The disadvantage is that you have to grapple with working out a workflow yourself and the universe of discourse includes a large amount of chatter at a low level of mechanical detail which tends to look like noise when you're trying to address a process level issue.
Edit: On the other hand, my son was gracious enough to point out the Angry Hitler meme has been adapted for new GIT users ...