I’ve done my best to explain what’s going on with these terms, but they cover basically every single major feature of git which is definitely too much for a single blog post so it’s pretty patchy in some places.
I really like this approach to understanding something with confusing terminology—assume the audience has necessary context and just jump in and unpack the confusing parts without starting from zero. I learned some new git tricks from this.