Progress
Everything the third edition needs, task by task — rendered fromprogress.asc in the repository.
7%5 of 75 tasks done
Project setup
5 / 5- 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
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
0 / 6- X1 —
master→mainacross the book (see the inventory for the per-line breakdown) - X1 — regenerate diagrams and screenshots that show a
masterbranch - X2 — SHA-1 → SHA-256 default-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 — cover the
safe.bareRepositoryandsafe.directorysecurity defaults - X5 — forge/IDE screenshot refresh (Ch 4, Ch 6, Appendix A)
Chapter 1 — Getting Started
0 / 5- 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
Chapter 2 — Git Basics
0 / 5- Normalize
restore/switchas standard commands (drop the "new in 2.23" framing) - Decide whether to teach
restore/switchbeforecheckout/reset - Update the
pull.rebasewarning framing inremotes.asc - Regenerate example hashes per the X2 policy
- Note the
mainand reftable defaults ingetting-a-repository.asc
Chapter 3 — Git Branching
0 / 3- X1 sweep (101 renames — the heaviest concentration)
- Regenerate the branch diagrams in
diagram-source/ - Revisit the branch-renaming discussion in
branch-management.ascfor a main-default world
Chapter 4 — Git on the Server
0 / 6- Demote Gitweb and
git daemon; lead with modern self-hosting - Add Gitea/Forgejo coverage
- Cover protocol v2; retire dumb HTTP
- Recommend Ed25519 keys in
generating-ssh-key.asc - Add a sidebar on reftable and SHA-256 hosting/interop implications
- Refresh screenshots (X5)
Chapter 5 — Distributed Git
0 / 2- X1 sweep (
contributing48 renames,maintaining39) - Contextualize the email-based workflow against PR-based norms
Chapter 6 — GitHub
0 / 4- Re-capture all screenshots (X5)
- Text pass for the current PR review UI, org settings, and account setup flows
- Scope decision on Actions, Codespaces, and the current review experience
- Default-branch language in examples (26 renames in
2-contributing)
Chapter 7 — Git Tools
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 - Add
git worktreecoverage - Add
git sparse-checkoutcoverage - Evaluate
git range-diff,git replay,git bugreport,git diagnosefor coverage - X1 sweep (147 renames — the highest chapter total)
Chapter 8 — Customizing Git
0 / 6- Add
safe.bareRepositoryandsafe.directorytoconfig.asc(X4) - Rewrite
init.defaultBranchas default-is-main - Note
--object-format(SHA-256) andextensions.refStorage(reftable) - Note removed config:
core.commentString=auto,core.preferSymlinkRefs=true - Consider
git for-each-repoin the scripting material - X1 sweep (
policy.ascenforced-workflow example, 8 renames)
Chapter 9 — Git and Other Systems
0 / 4- Trim
git svncoverage - Demote the Mercurial and Perforce bridges to a short "bridges exist" section
- Verify the bridge tooling runs on modern Python
- X1 sweep (23+ renames in the Hg sections, 37 in
git-p4)
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 - Add
commit-graphandmulti-pack-indexto the performance story - X1 sweep (70 renames)
Appendices
0 / 5- Appendix A: version/screenshot refresh for Sublime Text, Visual Studio, VS Code, JetBrains IDEs
- Appendix A: version-check the shell completion sections
- Appendix B: refresh binding versions (
libgit2,jgit,go-git,dulwich) - Appendix B: promote
go-git; add per-library SHA-256 support notes - Appendix C: add post-2.1 commands to the command index; note the 3.0 removals
New material
0 / 4- Dedicated "Git 3.0 / migrating to SHA-256" section
- Reftable explainer (pairs with the Ch 10 refs rewrite)
- Monorepo-scale material: sparse-checkout, partial clone,
scalar,git backfill git maintenance+ commit-graph as a first-class performance story
Publication
0 / 3- Redo the contributors list and dedication
- Final pass on the appendices (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.