What is version control?

By: Robert Outlaw

Version control systems are software that help you track changes you make in your code over time. As you edit to your code, you tell the version control system to take a snapshot of your files. The version control system saves that snapshot permanently so you can recall it later if you need it.

Without version control, you’re tempted to keep multiple copies of code on your computer. This is dangerous-it’s easy to change or delete a file in the wrong copy of code, potentially losing work. Version control systems solve this problem by managing all versions of your code but presenting you with a single version at a time.

Benefits of version control

Server hosting multiple users
Create workflows
Version control workflows prevent the chaos of everyone using their own development process with different and incompatible tools. Version control systems provide process enforcement and permissions so everyone stays on the same page.
Server hosting multiple users
Work with versions
Every version has a description for what the changes in the version do, such as fix a bug or add a feature. These descriptions help you follow changes in your code by version instead of by individual file changes. Code stored in versions can be viewed and restored from version control at any time as needed. This makes it easy to base new work off any version of code.
Server hosting multiple users
Code Together
Version control synchronizes versions and makes sure that your changes don’t conflict with other changes from your team. Your team relies on version control to help resolve and prevent conflicts, even when people make changes at the same time.
Server hosting multiple users
Keep a history
Version control keeps a history of changes as your team saves new versions of your code.  This history can be reviewed to find out who, why, and when changes were made. History gives you the confidence to experiment since you can roll back to a previous good version at any time. History lets you base work from any version of code, such as to fix a bug in a previous release.
Server hosting multiple users
Automate tasks
Version control automation features save your team time and generate consistent results. Automate testing, code analysis , and deployment when new versions are saved to version control.

Why version control matters

There are plenty of things that can take up your time as a developer-reproducing bugs, learning new tools, and adding new features or content. As the demands of your users scale up, version control helps your team work together and ship on time.

Get started using version control with your favorite tools with the Team Services Git tutorial.

Learn Git Get started with unlimited free private Git repos in Azure Repos.

Image: Robert Outlaw, MSFT Robert is a content developer at Microsoft working on Azure DevOps and Team Foundation Server.