Version control
Also known as: source control, revision control, version control system, VCS
Version control is a system that records changes to files over time, letting people see who changed what and when, restore earlier versions, and work on the same project without overwriting each other.
It's essential in software development, where Git is by far the most popular tool, but it's also used for documents, designs, and configuration files. While version control sounds technical, it's the reason developers can experiment boldly, because any mistake can be undone.
Version control, explained at three levels
At home
Version control is like an unlimited 'undo' history for a whole project, with a note on every change explaining who made it and why.
At work
Version control lets teams work on the same code safely, review changes, and roll back mistakes quickly.
At home
Even solo projects benefit from version control. Save a 'commit' each time something works, and you can always return to that point.
At work
Modern version control uses branches for separate lines of work, commits for saved changes, and merges to combine them. Platforms such as GitHub, GitLab, and Azure DevOps add reviews and automation.
At home
Version history in Google Docs or OneDrive is a simple form of version control. In my opinion, learning Git is still worth it for anyone who writes code or scripts.
At work
Protect main branches, require reviews, keep infrastructure and configuration in version control, never commit secrets, and back up repositories, since platform outages or account compromises happen.
Real-world examples
At home
Sophie broke her personal website while experimenting. Because she used version control, she returned to yesterday's working version in seconds.
At work
Marcus leads a Calgary software team. Version control showed exactly which change caused a bug, and they reversed it within minutes.
How it compares
| feature | Version control | Version History |
|---|---|---|
| History | Every change, with notes | Saved snapshots |
| Parallel work | Branches and merges | Limited |
| Typical users | Developers, IT | Office workers |
| Tools | Git, Subversion | Google Docs, OneDrive |
Document history saves versions. Version control manages parallel work.
For analysts
I'd put requirements documents, configurations, and scripts into version control, not just code. It creates an audit trail that answers 'when did this change?' instantly.
History & origin
Marc Rochkind created SCCS, one of the first version control systems, at Bell Labs in 1972. RCS followed in 1982, and CVS, from the mid-1980s, let teams work on shared projects over networks. Subversion, launched in 2000, became the standard for many companies. In 2005, Linus Torvalds created Git for Linux kernel development after the free licence for the tool the project had been using was withdrawn, and Mercurial appeared the same year. Git's distributed design, where everyone has a full copy of the history, won out, especially after GitHub launched in 2008. In my view, version control is the single most important habit in software development.