Background
- for the Linux kernel
- speed
- distributed
- cheap merges
- BitKeeper is doing it right
- CVS anv Subversion is doing it wrong
Objects
- files (blob)
- directories (tree)
- commits
- tags
Data flow
- working directory = HEAD + uncommited changes
- index = staged files
Remotes
- clone
- remote add
- fetch
- pull
- push
Work flow
- fetch + merge
- fast-forward
- change files
- add/rm/mv/stage
- commit