It‘s all an illusion

Birds Not RealJust had to do quite the deep dive into git to figure out some issues I was having with my new betas, tags and release candidates system. At some point when you deep dive into git the imaginary edifice of branches, the staging area, your working directory, it all disappears and it's acyclic graphs all the way down, and your head starts to hurt.

OMG branches aren't real! Argh.

Hold on, if branches aren't real what even is happening when I create a quick backup branch? Oh shit backup branches aren't real either.

The staging area where you put your files before you commit them. Not real!

What about the working directory, aka the worktree, not real!

Oh and remotes, not real!

It's all an illusion.

But then after a while you realise it doesn't really matter, everything just kind of keeps working even though it's all completely made up.

Every time I deep dive into git and resurface, it's always weird. It's like you see it's all an illusion, but then you just kind of have to go with it because otherwise you just can't function, because acyclic graphs are gnarly. It‘s very weird to have to switch between these two mental models, from real to imaginary, and back and forth all the time. If you haven't done a deep dive for a while you forget that the metaphors aren't real. It‘s so strange.

Underneath git is really made up of blobs, trees, commits and tags. Everything else, just convenient metaphors built ontop of pointers and files.