Version Control is a system that records changes to a file so you can:
- Recall and earlier version of the file
- Revert back to an earlier version of the file
- Compare changes made to the file over time
- See who made changes to a file, and what changes they made
- More easily identify issues and recover lost data
Some types of version control include:
- Local version control, which is just copying files to make changes.
→ This is what I’ve done up until this point, e.g with writing drafts, and it’s been a total PITA to organize and review previous drafts. Would be way easier to have one file for each piece of writing where I can revisit all the drafted material without it cluttering my files…
- Centralized Version Control Systems (CVCSs), which were developed for collaboration.
- A single server has all the files, but they can be “checked out” to different machines.
- …But if that server goes down or dies, no one can work and data is lost.
- With **Distributed Version Control Systems (DVCSs), users get the entire *repository* on their machine with its full history, instead of individual files.**
- This is what [[{9.2a} git]] is.