Version Control
Also known as: VCS, source control
Tracking changes to code (and other files) over time, so teams can collaborate without trampling each other's work.
- Primary domain
- Software Engineering & Notation
- Sub-category
- IDEs & Software Configuration Management
In simple terms
Version control is “Track Changes” for code. It remembers every saved snapshot of your files, who made each change, and lets many people work on the same project in parallel without overwriting each other.
More detail
A version control system (VCS) gives you:
- A history of every committed change.
- The ability to branch — make an independent line of work — and later merge it back.
- A way to collaborate by sharing those branches with other people, usually via a remote server.
- Blame/annotate views so you can see why a particular line is the way it is.
Two model families exist:
- Centralised (Subversion, Perforce) — one canonical server holds the history.
- Distributed (Git, Mercurial) — every working copy has the full history. Git won this race.
Why it matters
Without version control, software development at any meaningful scale falls apart. Even solo projects benefit from the safety net.
Real-world examples
-
Almost every open-source project on GitHub, GitLab, or Bitbucket uses Git.
-
Game studios and some film/CG shops still use Perforce because it handles huge binary files well.
-
The Linux kernel project has over 1.4 million Git commits from 25,000+ developers — a scale of collaboration that simply isn’t possible without distributed version control.
Common misconceptions
- “Git and GitHub are the same.” Git is the version control tool. GitHub is a website that hosts Git repositories and adds collaboration features.
Learn next
Learn the dominant tool: Git.
Read this in a learning path
All paths →This topic is part of 3 learning paths. Start in context to keep prev/next and progress tracking.
- Read this in Backend Engineer Starter KitThe minimum set of topics that turns a programmer into someone who can ship and operate a backend service in production. Start here View the whole path
- Read this in Frontend Engineer Starter KitThe topics that take you from "I can write some JavaScript" to "I can ship a real product on the web that respects users". Start here View the whole path
- Read this in Software Engineering PracticesThe discipline behind writing code that teams can maintain, test, and evolve — from version control to deployment pipelines. Start here View the whole path
Relationships
- Next
- Required by
Neighborhood
A visual companion to the relationships above. Click any node to visit that topic.