Course 09 · Workflow

Git
Every version you have ever had.

The tool every team uses and almost nobody is taught. A terminal in the page, and a git whose object ids are the real ones.

16Lessons
≈ 3hReading
16Playable now
CommitsBranchesMergingRebaseRemotesUndo

0 of 16 lessons finished — nothing yet

The syllabus

16 lessons,
in the order they build on each other.

Start lesson one ↗
01

What git actually is

A database of snapshots, and the three places your work can be at any moment.

≈ 10 min
02

Your first commit

init, status, add, commit — and what each of them moves.

≈ 11 min
03

Reading history

log, show, and the fields a commit really has.

≈ 11 min
04

Blobs, trees and commits

Inside .git: content addressing, and why the same content always gets the same id.

≈ 13 min
05

The staging area

Why git has a middle place, partial staging, restore, and .gitignore.

≈ 12 min
06

Undoing things

amend, restore, reset soft/mixed/hard, revert — and which ones rewrite history.

≈ 13 min
07

Branches are pointers

branch, switch, HEAD, detached HEAD — forty bytes, not a copy of the code.

≈ 12 min
08

Merging

Fast-forward, three-way, the merge base, and what a merge commit records.

≈ 12 min
09

Conflicts

What git can and cannot decide, the markers, and finishing the merge.

≈ 12 min
10

Rebase

Replaying commits onto a new base, why the ids change, and the one rule.

≈ 13 min
11

Remotes

remote, push, fetch, pull, tracking branches — and why fetch is the safe one.

≈ 13 min
12

Working with other people

Branch, push, pull request, review, and keeping a branch up to date.

≈ 12 min
13

Rewriting history

Squash, cherry-pick, interactive rebase, and force-with-lease.

≈ 13 min
14

Tags and releases

Naming a commit people can come back to, and versions that mean something.

≈ 10 min
15

Messages, ignores and habits

A commit message worth reading, .gitignore, secrets, big files, and branch strategy.

≈ 11 min
16

Practice: a week on a team

One scenario, start to finish: branch, conflict, review, release.

≈ 14 min