Plumbing. Transport. The content-addressable filesystem with a tracker bolted on top.
Welcome to Tier 3 — expert. This is where Git stops being "a content tracker" and reveals itself as a content-addressable filesystem with a tracker bolted on top. Pay attention.
The plumbing is the actual VCS. Porcelain is a thin shell around it. Once you can read plumbing, you can debug any porcelain weirdness, write your own scripts that do exactly what you want, and stop being mystified by the terms in the docs.
Tier 3 covers:
The plumbing manipulators — the commands that mutate the object database and the index directly: hash-object, update-index, commit-tree, write-tree, update-ref, read-tree, pack-objects. Used together, these are git commit. Not metaphorically — literally.
The plumbing interrogators — cat-file, ls-tree, rev-parse, rev-list, for-each-ref, merge-base. Tools that let you read the object DB and refs at any granularity. Every shell script you'll ever write to do "something Git-related but custom" is built from these.
The transport layer — daemon, http-backend, fetch-pack, upload-pack, send-pack, receive-pack. How clones, fetches, and pushes actually work over the wire. If you've ever wondered what happens between git push and the remote saying "ok," it's in this tier.
By the end of Tier 3 you'll be able to: read any commit hash and walk its tree by hand with cat-file; build a commit from scratch using hash-object/mktree/commit-tree/update-ref; understand the wire protocol well enough to debug a stuck push; and recognize, when you're staring at someone's clever-looking shell incantation, exactly what it's doing.
Then you go to the certification page, print it, and frame it.
git applygit checkout-indexgit commit-graphgit commit-treegit hash-objectgit index-packgit merge-filegit merge-indexgit mktaggit mktreegit multi-pack-indexgit pack-objectsgit prune-packedgit read-treegit replaygit symbolic-refgit unpack-objectsgit update-indexgit update-refgit write-treegit cat-filegit cherrygit diff-filesgit diff-indexgit diff-pairsgit diff-treegit for-each-refgit for-each-repogit get-tar-commit-idgit last-modifiedgit ls-filesgit ls-remotegit ls-treegit merge-basegit name-revgit pack-redundantgit repogit rev-listgit rev-parsegit show-indexgit show-refgit unpack-filegit vargit verify-packgit daemongit fetch-packgit http-backendgit send-packgit update-server-infogit http-fetchgit http-pushgit receive-packgit shellgit upload-archivegit upload-pack