Introduction to Version Control

Tutorial

·

Beginner

·

+10XP

·

10 mins

·

(364)

Unity Technologies

Introduction to Version Control

This tutorial is an introduction to version control: what it is, who uses it, and how it works in Unity. The other tutorials in this learning project cover various version control systems in detail.

Languages available:

1. What is version control?

Version control is a type of system that is responsible for managing and tracking information. Version control systems can be configured to store, manage, and track changes to any kinds of files, software, websites, or other data. Individuals, small teams, or large organizations may utilize a version control system to help back-up and manage complex projects. As version control systems work with cloud storage services, you are able to take advantage of features such as backup storage, revision tracking, and managing project development.


2. Who uses version control?

When multiple team members are involved with developing coordinated projects or software, it can become difficult to manage without a version control system in place. As a project increases with complexity or sophistication, team members need to stay concurrent with any of the recent changes their fellow teammates have performed. Otherwise, any potential scenario can occur where there may be resulting inefficiencies, bottlenecks, or unnecessary hurdles. For example, either losing work, or having to re-write code because of the lack of coordination can be a tangible frustration. Fortunately, a version control platform addresses this very concern.


3. How does version control work in Unity?

The Unity Editor can be configured to take advantage of version control solutions. Primarily, Unity offers a built-in version control package called Collaborate, which runs seamlessly and is a part of Unity Teams. The Unity Editor can also be configured to work with several different commonly-used third-party version control platforms. When applying any of these options, participants and their teammates can create and develop projects together with more efficiency and coordinated effort.


When developing Unity projects using version control, team members are enabled with the ability to collaborate with each other by accessing projects on a cloud storage directory. They may save recent changes, for example, or share, document, and track their progress via a repository (or file storage directory). This means that a team member is able to download and open up the most recent version of a project, make changes to it locally, and then “push” (publish) their changes back to the cloud repository. When changes occur to a single document where multiple people may be making modifications to it, a version control system manages that document to combine and unify all the changes back together. This is known as a “merge”, where the system resolves the sets of changes.


The practices of working in the shared environment are especially useful for complex and coordinated project development. Multiple people are able to back up their work, synchronize their projects, and collaborate with each other in real-time while also preserving individual autonomy. The version control systems enable teams to monitor and track their progress in development. They may freely make changes without concern or hesitation that their changes would conflict with another person’s work. Essentially, the platform maintains the integrity of a project by keeping track of the changes over time. If any changes potentially cause conflict, or if a decision has been made to revert to an earlier version, you are able to go back to any previous iteration, restoring the version from a specific time-stamp.


4. About this learning project

There are four different version control solutions extensively covered in this learning project. We will begin by going over Unity’s built-in Collaborate feature. Next, we will cover Unity’s integration with the external version control systems: Perforce Helix Core and Git. For each of these platforms, you will receive an overview as well as instructions to get them set up and connected.


Depending on your project or organization's needs, you will not need to deploy all of them. To take advantage of any of these version control integrations in Unity, You will first need to take the preliminary steps to install and configure the specific platform. To learn how a project workflow will operate for each of the listed platforms, reference your chosen platform in this series to receive the technical instructions for getting set up.


Complete this tutorial