Planning the third edition
Work has started on the third edition of Pro Git — the first full revision of the book since the second edition shipped in 2014. Let’s take a minute to explain why now, and what’s going to change.
So, why a third edition? The short answer is Git 3.0. After more than a decade of careful backward compatibility, Git’s maintainers have queued up a set of genuine breaking changes, and several of them cut straight through material the book teaches today:
mainbecomes the real default branch name. The book currently teachesmasterfirst and treatsmainas an opt-in override. That flips — and the inventory counts roughly 600 renames across the text, plus the diagrams and screenshots that show branch names.- SHA-256 becomes the default object hash for new repositories. You may remember the “40-character SHA-1 string” from the book; that passage — and every example hash in the book — needs a rethink.
reftablereplaces thefilesbackend as the default ref storage, which reshapes parts of the Git Internals chapter.- Rust becomes a mandatory build dependency, so “installing from source” gets a new prerequisite.
- New security defaults like
safe.bareRepositoryandsafe.directoryaren’t covered by the current text at all.
Beyond the 3.0 work, there’s a decade of general staleness to clear out: the book still tells you it was written using Git version 2, describes long-stable features as new, and shows forge screenshots from another era.
If you want the details, the full chapter-by-chapter inventory lives in REVISION_PLAN.md in the repository, with the master → main breakdown in book_master_to_main_inventory.md.
We’ll post progress here as chapters get revised. As always, the book is being written in the open — follow along or pitch in at github.com/progit/progit3. Let’s get started.