The foundation of collaboration.
WHAT IT PROVIDES
A complete history of every change The ability to return to any previous state The ability for several people to work simultaneously A record of who changed what, and why A basis for review, automation and release
WHAT WORKING WITHOUT IT LOOKS LIKE
Folders named with dates Files named final and final2 Changes overwritten No way to establish what changed or when
WHAT IT IS NOT
A backup, by itself.
WHY
A repository on one machine is lost with that machine.
WHAT MAKES IT A BACKUP
A copy held elsewhere.
WHAT TO PUT UNDER VERSION CONTROL
Source code Configuration examples Documentation Database schema changes Infrastructure definitions Build and deployment scripts
WHAT NOT TO
Dependencies Build output Secrets Large binary files, usually
WHY NOT SECRETS
Once committed, they remain in history permanently.
WHAT TO DO IF ONE WAS
Rotate it, assuming compromise.