TAB LogoTAB

5 Levels of Git: From 'What's a Commit?' to Time Traveler

Most devs stop at level 2 and wonder why merges feel like defusing a bomb. Here's the ladder.

Level 1: Copy-Paste Panic

You name files final_v2_ACTUAL.js and email zips to yourself. Git feels like a coworker's weird hobby. That's fine. The first real move is git init in a folder, git add ., git commit -m 'first'. Now you have one save point. Boring? Yes. But every level above is built on this exact loop.
Git is a stupid content tracker. It doesn't care about your files. It cares about snapshots and parent pointers. Once you see that, everything clicks.
Linus Torvalds (paraphrased)

Level 2: Branch Like It's Free

You stop committing to main. You make a branch for every tiny thing: git checkout -b fix-button-color. You merge with git merge. Sometimes it's clean. Sometimes you get a conflict and you actually open the file, look at the <<<<<<< markers, and pick. You learn that branches are just sticky notes pointing at commits. Cheap. Disposable.

The visual that changes everything

git log --oneline --graph --all. Suddenly you see the tree. Branches forking, merging, dying. You're not memorizing commands anymore — you're reading a map.

Level 3: Rebase Without Fear

You stop merging main into your feature branch. Instead: git rebase main. Your commits replay on top. History stays linear. You learn git rebase -i to squash 'fix typo' into the real commit. The rule: never rebase a branch someone else is using. You learn that the hard way once, then never again.

Level 4: Detective Mode

A bug appears. You run git bisect start, git bisect bad, git bisect good v1.2. Git checks out a middle commit. You test. Mark good or bad. In 5 steps you find the exact commit that broke it. You also use git blame not to shame people, but to find context. git log -S 'functionName' finds when a string was added or removed. You feel like a wizard.

Level 5: Time Traveler

You use git reflog to recover a branch you deleted yesterday. You cherry-pick a single commit from a dead branch. You fix a mistake with git commit --amend on a pushed branch (and force-push with lease, carefully). You stop fearing mistakes. Everything is recoverable. That's the real power.

5 Levels of Git: From 'What's a Commit?' to Time Traveler

Slide 1 of 7

5 Levels of Git: From 'What's a Commit?' to Time Traveler

Level 1: Copy-Paste Panic

Most devs stop at level 2 and wonder why merges feel like defusing a bomb. Here's the ladder.

You name files final_v2_ACTUAL.js and email zips to yourself. Git feels like a coworker's weird hobby. That's fine. The first real move is git init in a folder, git add ., git commit -m 'first'. Now you have one save point. Boring? Yes. But every level above is built on this exact loop.
1 / 7
Page 1 of 8