What is Version Control?

Version control is a software system that allows users to track changes to a file within a project. It stores every change that is made, and keeps a record of the file from before it was updated. This allows the project, or any file within it, to be rolled back to a previous version. The two major advantages of a version control system, which set it apart from a backup file, are that multiple copies of the same file are not needed and that files can be restored to previous versions individually.

A good way to wrap your head around it is to think of the difference between a printed encyclopedia (backups) and Wikipedia (version control). To have access to the few articles that are changed when the new version of a printed book comes out you must keep the old one. Every time that it is updated a whole new copy of the book is necessary, and to use a previous version you have to do so for everything, even though you only need the pervious version for one item.

With Wikipedia you can update one article at a time and do not need to store a copy of the others which were not updated. To see the changes made to an individual item you can view its history, and revert back to a previous version, independent of changes to others.

From a development standpoint, version control allows us to roll back specific files without having to undo unrelated changes that that happened after. If a bug or hack is found, we can go back to a working version of an individual file.