What is version control?

Version control systems are software that help track changes make in code over time. As a developer edits code, the version control system takes a snapshot of the files. It then saves that snapshot permanently so it can be recalled later if needed.

Without version control, developers are tempted to keep multiple copies of code on their computer. This is dangerous because 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 the code, but presenting the team with a single version at a time.

Why version control matters

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

Benefits of version control

Version control benefits many aspects of production.

Create workflows

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.

Work with versions

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 the team follow changes in 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. Versions make it easy to base new work off any version of code.

Code together

Code together

Version control synchronizes versions and makes sure that changes don't conflict with changes from others. The team relies on version control to help resolve and prevent conflicts, even when people make changes at the same time.

Keep a history

Keep a history

Version control keeps a history of changes as the team saves new versions of code. Team members can review history to find out who, why, and when changes were made. History gives teams the confidence to experiment since it's easy to roll back to a previous good version at any time. History lets anyone base work from any version of code, such as to fix a bug in a previous release.

Automate tasks

Automate tasks

Version control automation features save time and generate consistent results. Automate testing, code analysis, and deployment when new versions are saved to version control are three examples.

Next steps

Learn more about the worldwide standard in version control, Git.