Version Control System

A Version Control System (VCS) is a service that helps an individual or organization to track changes made to source code over time. As changes are made to the code and uploaded to the VCS, a snapshot of your files are taken. The VCS then saves these snapshots so that they can be recalled at a later date if needed.

Without a VCS, you would have to keep multiple copies of the code on your computer. It is very easy to accidentally change or delete a file with the wrong copy of the code, and potentially lose your work. VCS solves these problems by managing all versions of your source code but presenting you with a single version at a time.

Below are some of the benefits of a VCS:


Automating Tasks: VCS automation features saves your team time by automating: testing, code analysis, and deployment; when new versions of the code is saved into a VCS repository. 


Coding Together: VCS synchronizes and makes sure that your changes don’t conflict with other changes from your team. Your team can rely on VCS to help resolve and prevent these conflicts. 


Tracking History: VCS keeps a history of changes as your team saves new versions of the code.  The history can be reviewed to find out who, why, and when changes were made over time. By using this history you can rollback to a previous good version of the code at any time. 


VCS Matters: A VCS frees a developers time by helping them reproduce bugs, learning new tools, and adding new features or content. As your needs scale up, a VCS helps your team work together and ship your app or service on-time.


Versioning: When a new version of the code is uploaded to the VCS repository, a description of what changes have been made can be included with it (such as 'bug fix' or 'new feature' was added). These descriptions can help your team track why changes were made to the code. Then versions of the code stored in repository can be viewed and restored from the VCS as needed at any time.  


Workflows: A VCS workflows can help prevent someone from using their own development process with different and incompatible tools or methodologies. A VCS can provide process enforcement and permissions so everyone stays on the same page.  

====

More information: