Hero background image
Version control for programmers
Smarter development starts with the right toolchain. Build an efficient development pipeline with version control tools that work for everyone – so you can concentrate on creating clean code.
Master version control and set up your project with this thorough best practices guide.
Get the details
Lost in Random promo art
Lost in Random by Zoink!

Reclaim your most precious resource: time

With Unity DevOps solutions in place, you can focus on what’s important: taking risks, experimenting, innovating, and creating. Get started with a powerful version control solution built to bridge the gap between programmer and artist workflows.

Benefits for programmers
Plastic SCM large files
Large binary files are never bottlenecks

Unity Version Control handles checkin and update of huge files 5–8x faster than other VCS, easily handling lots of models, materials, and meshes. The more you scale, the better Version Control performs.

Save time and minimize task-switching
Save time and minimize task-switching

SemanticMerge is Unity’s code-aware merge tech, supporting C#, Java, VB.NET and more. By analyzing syntax, it automates 16–30% of code merges that would normally require a manual merge.

Plastic SCM Branch Explorer
Understand code change history

Version Control’s branch explorer visualizes your repo’s branch and merge history. Use this view on a single file or directory to explore the history and understand code changes.

Workspaces in Unity Version control
Separate workflows for non-developers

Different workflows, same repo. Artists can work in a simplified, intuitive workspace, or inside Unity with no coder-oriented features – so you spend less time troubleshooting.

Key features

Unity’s DevOps solutions give you a wide range of functionality while keeping things simple. See something missing from the list? Check out our DevOps roadmap.

Plastic SCM over Gluon
Work centralized or distributed

Some teams need to benefit from the powerful branching and merging of a distributed version control system (DVCS) but don’t want to have a clone of the repository (or repositories) on each machine. Version Control allows teams to choose whether they want to work centralized or distributed. You can even choose both, with some team members using centralized and others distributed concurrently.

Creating a branch with Unity Plastic SCM
Responsive branching

Any successful branching and merging pattern relies on creating branches quickly. This process should take less than a second, even for codebases containing hundreds of thousands of files. With Version Control, file count is never a blocker for branch creation.

Unlike other version control systems, Version Control doesn’t rely on copying existing branches to create new ones. Instead, new branches inherit their properties from a given changeset. Because this process isn’t tied to the number of files in the codebase, it always takes the same amount of time (a few milliseconds) – even for massive projects with an excess of 500,000 files on a branch.

3 Way Merge with Unity Version Control
Three-way merging

Version Control’s built-in three-way merge tool, Xmerge, features language-agnostic refactoring support, allowing you to resolve even the most complex merge conflicts in short order. You can also easily plug in third-party tools like Araxis, BeyondCompare, and others.

Unity with Git version control
Take advantage of the Git ecosystem

Any tool in Git’s ecosystem can connect to Version Control instantly using their native Git functionalities. Teams using Version Control can then benefit from all the DevOps, CI, and project management integrations developed specifically for Git.

Version Control’s GitSync provides bidirectional synchronization between Version Control and Git. Version Control communicates with Git network protocols to push and pull packages and merges to a remote Git server (and the reverse). This allows you to use the Version Control GUI as a Git client: Because Version Control is structured somewhat similarly to Git, you can exchange all changesets, branches, and merges between them.

GitServer is GitSync’s server-side counterpart. It closes the Git interoperability loop by allowing Version Control to serve repositories using Git protocols (Git and HTTP supported).

Cross link linking repositories
Link repositories

Cross-links, or Xlinks, are essentially merge-aware Git modules. Use them to link together different repositories and create a hierarchy of components shared among different projects.

An Xlink is a special directory entry that points to a given changeset on a different repository (potentially on a different server). The contents of the Xlink are downloaded transparently to the user workspace.

Read-only Xlinks are meant to handle dependencies that rarely change, while writable Xlinks enable parallel development across codebases with several repositories. Version Control handles branching and merging on writable Xlinks.

Security permissions with Unity Version Control
Access control, encryption, and security

Version Control has a range of security features to protect your source code. Set permissions to repositories, branches, labels, and paths to not only secure the codebase but also enforce policies and security best practices within your team.

Unity editor with Plastic SCM
Work in-engine

Version Control is optimized for a variety of gamedev scenarios and supports both Unreal and Unity. Creating with Unity? Get the Version Control Package directly from the Unity Package Manager. Enjoy true collective project ownership with a deeply embedded, flexible, and reliable version control solution that everyone can easily understand and use.

Visual Studio CodeLens Unity version control
Visual Studio with CodeLens

Codelens is now installed as a part of Visual Studio 2022 Version Control extension. When you create the Version Control data point above a method, property, or type, it will display a list of up to 10 of the last changes in that element. This leverages the semantic technologies in Version Control, showing only changes in the file that affect the annotated element. Keep in mind that this feature will only show up in semantic-available files (C#, C, C++) in a Unity Version Control Workspace.

Games making it happen
Monster Closet Games
Project Shrine

Learn how Monster Closet Games maximizes efficiency using engine-agnostic Unity DevOps solutions and automations with Unreal Engine.

Return to Nangrim
Return to Nangrim

Read how Sycoforge leveraged Unity tools to manage the growing scope of their project and integrated player feedback for rapid, iterative game development.

Goodbye Volcano High
Goodbye Volcano High

How does a worker-owned cooperative studio get both artists and engineers aligned on a production process? Read how KO_OP powered collaboration with Unity Version Control.

Version control for programmers callout
Set up Unity Version Control for your project

Want to get up and running quickly? These instructions can help you set up Unity’s version control for your project in just a few minutes.

Frequently asked questions

Does this integrate with JIRA or other tools?

+

What IDEs have integrations?

+

What CI and DevOps tools are supported?

+

What collaboration tools are supported?

+

Can I import version control history?

+

Can I connect to Git or Perforce?

+

Are Windows, Linux, and macOS supported?

+

Can I check in and merge with Unity Version Control in the cloud?

+

Who uses Version Control?

+