How Git Works
If you’re still perplexed by git even though you’ve been using it for years, this zine is for you!
Git has a bad reputation: it’s easy to accidentally lose your work or put your repository into a difficult-to-recover state, the terminology is arcane (detached HEAD state? reference? fast-forward? remote-tracking branch?), and the man pages are legendary for how inscrutable they are.
It’s no surprise that many people stay in their comfort zone: you might have a set of 6 git commands that work for you, and hope that nothing goes wrong.
But my experience is that after learning how git’s design choices work, it’s way easier to:
- confidently handle diverged git branches, so you can work with others with no stress
- recognize bad git situations, so you can quickly get out of them and move on
- understand git’s underlying logic, so that messages like “you’re in detached HEAD state” are totally routine to deal with
- know how git stores your history, so when you lose a commit you can always get it back
This zine explains git’s core concepts (commits! branches! merging! remotes!) with minimal jargon and a focus on the actual problems that can ruin your day. What does fast-forward failed
mean? What’s “detached HEAD state” and what are you supposed to do about it? Why do commits sometimes get lost, and how can you get them back?