You can think of a Version Control System (aka: VCS) as a kind of database. It lets to save a snapshot of the complete project at any point of time. Every change made to the project files is tracked, along with who made the change, why they made it, and references to problems fixed, or enhancements introduced, by the change. Later when it is required to take a look at an older snapshot/version, VCS shows how exactly it differed from the previous one.
Version Control System also popularly know as:
- Revision Control System
- Configuration Management System
- Source Control Management System
If you are a web designer or web developer and want to keep every version of an image or project snapshots, it is very wise to use a Version Control System (VCS). A VCS allows you to:
- Centrally storing files
- Revert files back to a previous state
- Revert the entire project back to a previous state
- Review changes made over time
- Keeping record of Who/When/What changes are made
With the help of these features, it is easy to check the changes made on something, that might be causing a problem, who introduced an issue and when, and more. Using a VCS also means that if you screw things up or lose files, you can generally recover easily.
Version Control System
Let understand the Version Control with an example.
As per the image below, assume you started working on any project. You created a new code file and saved the changes. This code file can be of any programming language or it is not necessarily has to be a code file, it can be a word document or an image or group of files. You kept working on the same project and continuously adding new files and editing old files.
Each time a new file is created or an old file is edited, version control system deducts the changes and make a record of it. It will store all the data related to changes like who made the changes, when made the changes, what changes has been made etc. In short every time you make any change, it creates a snapshot of your project and saves it. And these snapshots are nothing but are called the versions.
Note: Snapshot: Snapshot is the entire state of your project at a given point of time.
Top Version Control Systems
There are many Version Control Systems are available in market, but few top VCS are: