8 parts · 8 chapters

Git, Unix and the Shell

The tools every engineer uses daily and few were taught. Git stops being magic once you see that a commit is a small text file named by its own hash: in this course's demo repository, git hash-object and shasum over "blob 6\0hello\n" printed the same 40 characters, ce013625….

Eight parts: Git internals (objects, refs, packfiles); merges, rebases and history surgery; the Unix philosophy; shell scripting properly (strict mode, quoting, traps); pipes and processes; text tools (grep, sed, awk, jq, sort, uniq); SSH (keys, agents, config, tunnels); and make and task runners.

git internals · merges, rebases and history surgery · the Unix philosophy · shell scripting properly · pipes and processes · text tools · SSH · make and task runnersbeginner → senior · every engineer
git objectsBlobs, trees, commits and tags, all content-addressed.
historyMerge, rebase, cherry-pick, bisect, reflog: and how to undo.
philosophySmall tools, text streams, composition.
shellScripts that fail loudly and quote correctly.
textOne-liners that answer questions about logs and data.
remoteSSH keys, config, agent forwarding risks, tunnels.
For programmers without a CS degreeNo prerequisites; complements the C course (processes, pipes) and Merge Reviews (history hygiene).