i'm always a bit frustrated when people look at all this confusing terminology and respond "oh yeah but all you need to understand is that everything in git is a reference". Like -- sure! That's a useful thing to understand!
But there are a bunch of different kinds of references (branches, tags, remotes, the stash) and git's commands affect them in different ways. You actually do need to understand how they all work and git’s terminology doesn't do a lot to help you do that.
@b0rk I'm really glad you're compiling all of this, I've always felt like git managed to have most of its terminology designed exactly backwards. It confuses _everyone_ at some point.