Learning path
Git from fundamentals and internals to branching, interactive rebase, undoing mistakes, hooks, and team workflows.
A commit is not a diff, a branch is not a folder, and .git is not a black box โ it's a content-addressed key-value store with four object types. Once that clicks, git gc, shallow clones, and "detached HEAD" all stop being magic.
Read chapter โ
Three ways Git extends past "track my source files": hooks that run your own scripts at key points, submodules for embedding one repo inside another, and LFS for handling large binaries without bloating the object store from the previous chapter.
Read chapter โ
Git Flow, trunk-based development, and feature branching are all built from the same primitives covered so far โ the actual difference between them is how long branches live and how often they merge, which is also what determines how much your CI pipeline needs to do.
Read chapter โ
The scenarios that don't map cleanly to one earlier chapter โ a commit on the wrong branch, a conflict that looks unresolvable, a force-push that broke someone else's day โ collected as direct fixes instead of concepts, closing out the series.
Read chapter โ
SSH authenticates which account accesses a repository; Git config determines who authored the commit. Conflating the two is how you end up pushing personal code to a work org or committing under the wrong profile โ fixing it is a one-time SSH config setup.
Read chapter โ