Explain It Like I'm 5: Version Control (Git, Subversion, Mercurial)

A version control system, or VCS, tracks the history of changes as people and teams collaborate on projects together. As the project evolves, teams can run tests, fix bugs, and contribute new code with the confidence that any version can be recovered at any time. –Git Handbook

What happens if your computer blows up after you build something? All of your project files are gone if your laptop is destroyed.

Version Control solves this problem by creating a file system with a memory. Every update to each file is stored in history so you can easily revert to a previous file version, or quickly see what's changed in each update. Since VCSs often hook up to servers, you simply redownload the files to your new computer to start work again.

In another scenario, imagine you and a friend are working together on a project. You each download the code from .zip file, and take it home. What happens if you accidentally change the same lines of code while you're working separately? You will be forced to get together and manually handle the conflict by deciding whose code to use. Imagine adding 5 more developers to your team, or 20. It would be impossible to create software without breaking things constantly.

Version Control also includes helpful tools to handle "conflicts" and makes code collaboration possible, which has made it essential to modern programming.

It also comes in different flavors like Git, Subversion, and Mercurial.

Additional Resources:

See the entire series.