Progress
Everything the third edition needs, task by task — rendered fromprogress.asc in the repository.
15%15 of 101 tasks done
Project setup
7 / 7- Import the 2nd-edition sources as the starting point
- Write the revision plan (
REVISION_PLAN.md) - Build the line-level
master→maininventory (book_master_to_main_inventory.md) - Launch the project site — book reader, blog, history
- Set up the cloud build/test environment for agents
- Link ebook downloads (PDF/EPUB/FB2/HTML) from the site's book page
- Switch the PDF code font to JetBrains Mono
Restructure
6 / 6- Write the full chapter/section outline and punch list (
OUTLINE.md) - Renumber and retitle the chapters (Git Toolkit, Git Servers, new order)
- Create the new placeholder chapters — Git and Agents (Ch 7), Git at Scale (Ch 9)
- Create the new placeholder sections — Worktrees (3.5), Pull Requests and Forges (4.3), Ignoring Files (6.2)
- Drop the GitHub chapter, Git and Other Systems, and the environments/embedding appendices; keep the command reference as Appendix A
- Retarget every cross-reference; render xrefs as chapter labels instead of filenames
Policy decisions
0 / 2- Decide the
master→mainrename policy (gates X1, ~602 renames) - Decide how to represent example hashes: regenerate everything at SHA-256, or keep labeled SHA-1 legacy examples (gates X2)
Cross-cutting sweeps
2 / 6- X1 —
master→mainacross the book (see the inventory for the per-line breakdown) - X2 — SHA-1 → SHA-256 example-hash pass (~31 files reference hashes)
- X3 — version framing: bump "written using Git version 2" to 3.x; reframe "since Git 2.23/2.27/2.28" notes as baseline behavior
- X4 — restructure plumbing: include map, chapter renumbering, placeholders, drops
- X5 — cross-reference repair after the restructure (retargets, rescued anchors)
- X6 — regenerate diagrams for
main; new diagrams for worktrees, agents, and scale
Preface
0 / 2- Write the preface — the 3.0 moment, new-defaults-first stance, dual-path coverage, what's new this edition (outline placeholder is in place)
- Decide: fold
introduction.ascinto the preface, or keep it standalone
Chapter 1 — Getting Started
0 / 6- Update the headline SHA-1 passage in
what-is-git.asc(X2) - Refresh per-platform install steps in
installing.asc - Add the Rust toolchain requirement to "compile from source"
- Rewrite the default-branch subsection of
first-time-setup.ascfor a main-default world - Note Git's maturation and the 3.0 transition in the history section
- Refresh the help-channels list in
help.asc
Chapter 2 — Git Basics
0 / 5- Reframe
undoing.ascaroundrestore/switchas the primary verbs - Note what
git initcreates under 3.0 (main, SHA-256, reftable) ingetting-a-repository.asc; demotegit:// - Update the
pull.rebasewarning framing inremotes.asc - Assemble 2.7 "Basic Configuration and Aliases" from the existing config material
- Regenerate example hashes per the X2 policy
Chapter 3 — Git Branching
0 / 6- X1 sweep (101 renames — the heaviest concentration)
- Regenerate the branch diagrams in
diagram-source/ - Teach
git switchfirst innutshell.asc;checkoutas the legacy form - Revisit the branch-renaming discussion in
branch-management.ascfor a main-default world - Add GitHub Flow, trunk-based development, and stacked PRs to
workflows.asc - Write 3.5 Worktrees (placeholder is in place; new diagrams needed)
Chapter 4 — Distributed Git
0 / 6- X1 sweep (
contributing48 renames,maintaining39) - Contextualize the email-based workflow as the kernel/git.git niche
- Add trunk-based development to
distributed-workflows.asc - Write 4.3 Pull Requests and Forges, forge-neutral (placeholder and rescued anchors are in place; adapt the dropped GitHub-chapter material)
- Add the PR-based maintenance counterpart to
maintaining.asc - Rewrite the chapter close (the old "next chapter: GitHub" handoff — flagged with an AUTHOR TODO)
Chapter 5 — Git Toolkit
0 / 9- Add SSH commit/tag signing to
signing.asc(plusgpgsmfor X.509) - Rework
replace.asc— grafts are removed in 3.0 - Add the new
git historycommand torewriting-history.asc - Lead
rewriting-history.ascwithgit filter-repo; markfilter-branchdeprecated - Update
credentials.ascfor Git Credential Manager - Update
stash save→stash pushthroughoutstashing-cleaning.asc - Add
git bisect runtodebugging.asc - Evaluate
git range-diff,git replay,git bugreport,git diagnosefor coverage - X1 sweep (147 renames — the highest chapter total)
Chapter 6 — Customizing Git
0 / 9- Add
safe.bareRepositoryandsafe.directorytoconfig.asc - Rewrite
init.defaultBranchas default-is-main - Note
--object-format(SHA-256) andextensions.refStorage(reftable) - Add
includeIf,core.hooksPath, and the XDG config path toconfig.asc - Note removed config:
core.commentString=auto,core.preferSymlinkRefs=true - Assemble 6.2 Ignoring Files from the Ch 2 and
config.ascmaterial (placeholder is in place) - Refresh the hook catalog with post-2014 hooks
- Decide: keep
policy.asc(recommended) or cut it - X1 sweep (
policy.ascenforced-workflow example, 8 renames)
Chapter 7 — Git and Agents
0 / 6- Write the chapter introduction — how agents change repository usage
- Write 7.1 Workflows for Agents
- Write 7.2 Tools and Interfaces
- Write 7.3 Libraries (reflow the dropped Appendix B; add gitoxide and per-library SHA-256 notes)
- Write 7.4 Guiding Agents
- Write 7.5 Tips and Pitfalls
Chapter 8 — Git Servers
0 / 9- Cover protocol v2; retire dumb HTTP
- Recommend Ed25519 keys in
generating-ssh-key.asc - Trim
git daemon; drop the xinetd/sysvinit material - Update
smart-http.ascto current Apache syntax; note token/OIDC auth - Decide: cut GitWeb to a sidebar (recommended) or keep it trimmed
- Rework 8.8 into a self-hosted forges section — Gitea/Forgejo lead, GitLab heavyweight (new screenshots)
- Rewrite 8.9 Hosted Options as the current hosting landscape
- Add a sidebar on reftable and SHA-256 hosting/interop implications
- Fix the chapter's "next chapter" prose for the new order (flagged with an AUTHOR TODO)
Chapter 9 — Git at Scale
0 / 9- Write the chapter introduction — why big repositories strain Git
- Write 9.1 Shallow Clones
- Write 9.2 Partial Clone
- Write 9.3 Sparse Checkout
- Write 9.4 Scalar
- Write 9.5 Keeping Large Repositories Fast
- Write 9.6 Large Files (decide: lives here, as recommended, or in Git Servers)
- Write 9.7 Monorepos
- Decide the performance split: ops story in 9.5, format detail in Ch 10 (recommended)
Chapter 10 — Git Internals
0 / 6- Rewrite
objects/packfileswith the object-format framing and the SHA-256 interop story - Add reftable to
refs.asc— the new default, and the why (case-collision, performance) - Fold protocol v2 into
transfer-protocols.asc - Verify
maintenance.ascagainst currentgit maintenance; redo the big-file removal example withfilter-repo - Add
commit-graphandmulti-pack-indexformat coverage - X1 sweep (70 renames)
Appendix A — Git Commands
0 / 3- Add post-2.1 commands to the index:
switch,restore,worktree,sparse-checkout,scalar,maintenance,range-diff,history - Note the 3.0 removals (
whatchanged,pack-redundant) and deprecations (filter-branch) - Decide the fate of the commented-out External Systems entries (
git svn,git fast-import)
New material
0 / 1- Dedicated "Git 3.0 / migrating to SHA-256" section — decide where it lives, then write it
Publication
0 / 3- Redo the contributors list and dedication
- Final pass on the command appendix (fastest to rot; do near publication)
- Watch for the LTS tag (the last 2.x before 3.0) and time the release to it
Spotted something missing? Tasks live inprogress.asc — a plain AsciiDoc checklist that anyone can edit.