Introduction
Git is split into two layers. Plumbing commands are low-level building blocks operating on the object database, refs, and the index. Porcelain commands are user-friendly wrappers built from plumbing. git commit is porcelain; git hash-object, git write-tree, and git update-ref are plumbing.