Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Elements of a Grammar

Git has 160+ commands. Some are plumbing (hash-object, write-tree); some are porcelain (commit, log), built on top of the underlying plumbing commands.

Some porcelain operations are combinations of others. For example, pull is fetch + merge/rebase. cherry-pick is diff + apply + commit. A rebase is basically a series of cherry-picks followed by a reset.

Here’s a challenge. What basic porcelain commands would suffice to build an entire versioning system?

Think about it.