See all glossary terms

Version Control System (VCS)

A Version Control System (VCS in short) is a program that keeps a history of changes to your project's code and assets over time.
It allows multiple developers to work on a single project simultaneously, tracking and merging their contributions as needed. A VCS allows developers to keep a detailed log of every change made to the project, including who made the changes, what was changed line by line, and when the change was saved.
You can see a VCS as a time machine that allows you to go back in time and see the state of your project at any point you recorded in its history. Developers can use that to find when a bug was introduced, to compare different versions of the project, or to revert to a previous version if something goes wrong.
It also helps to coordinate the work of multiple developers, as they can work on different parts of the project without interfering with each other's change. When they are ready, they can merge their changes, and the VCS will help resolve any conflicts that may arise. This can happen, for example, when two developers change the same line of code in different ways.
The most popular Version Control System is probably Git, a program initially built by Linus Torvalds to manage the Linux kernel's development. It's designed to support complex open-source projects to which developers from all over the world contribute. It's the system used to develop the Godot Engine itself and other programs like Blender 3D.

VCS support in Godot

Pretty much all the files that you rely on in your Godot projects are or can be saved as text, which makes them friendly to version control systems like Git. This includes scenes, scripts, project settings, and other resources created in Godot like materials or UI themes.
A VCS will keep track of each line that changes in these files, allowing you to see the history of changes and revert changes if needed.