# Why Version Control Exists ## The problem: `final.txt`, `final_v2.txt`, `final_v2_ACTUALLY_FINAL.txt` Before version control, "keeping history" usually meant copying a file with a new name every time something changed. This fails fast: you lose track of WHAT changed between versions, WHO changed it, and WHY — and it gets completely unworkable the moment more than one person touches the same project. ## What version control actually gives you - **History** — every change, in order, permanently. You can see exactly what a file looked like at any point in the past. - **Reproducibility** — you can recreate the EXACT state of an entire project at any past moment, not just one file. - **Collaboration** — multiple people can work on the same project without emailing files back and forth or overwriting each other's work. - **A source of truth** — one authoritative history everyone agrees is correct, instead of "whoever has the newest-looking filename." - **Rollback** — if a change turns out to be wrong, you can return to a known-good prior state with confidence, not by hoping you kept a backup copy somewhere. ## Why copying files isn't version control Copying `app.py` to `app_backup.py` before making a risky change LOOKS like version control, but it has none of version control's real properties: no record of WHY the change was made, no way to see incremental history, no way to combine two people's simultaneous edits, and no scalability past a handful of files. Git (and version control generally) tracks CHANGES over time as a structured history, not disconnected snapshots you have to manually manage. ## Instructor Notes **Lesson goal:** Motivate Git before teaching a single command — students should feel the real problem (the `final_v2_ACTUALLY_FINAL.txt` pattern) before the solution makes sense. **Approximate timing:** 10 minutes read; 8 minutes live. **Discussion question:** "Has anyone ever lost work, or overwritten someone else's work, because of exactly this kind of file-copying problem?" (Real personal stories land this lesson far better than abstract description.)