Guiding principles and implications
- Speed
- -> (almost) everything is local
- Simple design
- -> snapshots not deltas
- -> Once committed to Git, hard to lose work as Git generally adds data
- Strong support for non-linear development (thousands of parallel branches)
- -> painless branching
- Fully distributed
- -> full history cloned locally
- Able to handle large projects like the Linux kernel efficiently (speed and data size)
- data size -> compression, pointers to same object
- integrity -> everything checksummed