What is version control?

Version control is software used to track revisions, solve integration conflicts in code, and manage different artifacts involved in software projects (e.g. design, data, images). Version control also enables frictionless communication, change, and reproducibility between team members.

Version control enables teams to collaborate and streamline development to resolve conflicts and create a centralized location for code.

With version control, you’re able to track and merge branches, audit changes, and enable concurrent work to accelerate software delivery. Version control is flexible and versatile to adapt seamlessly to the structure of a DevOps org, the product architecture, and every release model. Simultaneously, it reduces inherent complexity with centralized, user-friendly project management dashboards. Using version control results in remarkable team productivity and software quality improvements.

Why use version control?

Software is developed to solve a user problem. Increasingly, these solutions have many different forms (e.g. mobile, embedded, SaaS) and run a variety of environments, such as cloud, on-prem, or Edge. As organizations accelerate delivery of their software solutions through DevOps, controlling and managing different versions of application artifacts - from code to configuration and from design to deployment - becomes increasingly difficult. Velocity without robust version control and traceability is like driving a car without a seatbelt.

Version control facilitates coordination, sharing, and collaboration across the entire software development team. Version control software enables teams to work in distributed and asynchronous environments, manage changes and versions of code and artifacts, and resolve merge conflicts and related anomalies.

Which is the best version control software?

There are several source code management options that can help your team streamline development. The three most well-known options are Git, SVN, and Mercurial.

Logo git

Git

Git is the most popular option and has become synonymous with “source code management.” Git is an open source distributed system that is used for projects of any size, making it a popular option for startups, enterprise, and everything in between.

Logo svn

Subversion

SVN is a widely adopted centralized version control system. This system keeps all of a project's files on a single codeline making it impossible to branch, so it’s easy to scale for large projects. It’s simple to learn and features folder security measures, so access to subfolders can be restricted.

Logo mercurial

Mercurial

Mercurial is a distributed version control system that offers simple branching and merging capabilities. The system enables rapid scaling and collaborative development, with an intuitive interface. The flexible command line interface enables users to begin using the system immediately.

Resources

Here’s a list of resources on version control that we find to be particularly helpful in understanding version control and implementation. We would love to get your recommendations on books, blogs, videos, podcasts and other resources that tell a great version control story or offer valuable insight on the definition or implementation of the practice.

Please share your favorites with us by tweeting us @GitLab!

15 tips

15 Git tips to improve your workflow

Learn how to compare commits, delete stale branches, and write aliases to save you some time. It's time to dust off your command line and Git busy!

Read
Problem git flow

The problem with Git flow

Learn why Git flow complicates the lifecycle and discover an alternative to streamline development.

Read
Partial clone

How Git Partial Clone lets you fetch only the large file you need

Work faster with this experimental Partial Clone feature for huge Git repositories, saving you time, bandwidth, and storage, one large file at a time.

Read
Gitlab workflow

GitLab Workflow: An Overview

The software development lifecycle in one single interface!

Read
Demo mastering code review

Demo: Mastering code review with GitLab

Code review shouldn't be a burden, it should make your team better and faster so you can keep delivering new features on time.

Read
2019 vision

GitLab's 2019 product vision for DevOps Create

Take an early look at where collaboration, merge requests, and the Web IDE are heading in 2019.

Read
Gitlab flow

GitLab flow

This article offers a simple, transparent and effective way to work with git.

Read
11 rules

The 11 Rules of GitLab Flow

These 11 rules will simplify the process and produce a cleaner, more efficient outcome.

Read