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:
Thanks for reading! You are my favorite person for sticking around until the end. 🍻
This blog is a constant work in progress, and I want to get better with your help! If you have feedback or questions on this post, please leave a comment below, use my site's contact page, or reach out to me on Twitter.