GitLab compared to other tools

GitHub.com vs. GitLab.com

FEATURES

Unlimited public private repositories and unlimited collaborators for free

No matter the type of project or how many people you collaborate with, you can use GitLab.com for free. That means free public projects, free private projects and as many people on those as you need.

GitLab.com runs GitLab Enterprise Edition with all its features

All the features from GitLab Enterprise Edition run on GitLab.com. This means you can use Push Rules, Merge Request Approvals and even File Locking on GitLab.com.

Free CI with Shared or Own Runner

GitLab.com has shared runners that allow you to use GitLab CI completely free. Alternatively, you can set up your own Runner for faster build processing or special requirements.

Fast page load

GitHub.com has faster pageloads than GitLab.com right now, we're actively working on improving this. Self-hosted instances of GitLab CE/EE will be performant up to tens of thousands of users.

Read more

Built-in Continuous Integration and Continuous Deployment

GitLab has built-in CI/CD, for free. GitHub has 3rd party CI/CD, which depends on GitHub, that are expensive if your projects are private.

Documentation on CI

CI/CD best practices

Everyone in your organization with GitLab is able to setup and manage CI/CD. GitHub and its external CI/CD encourages this knowledge to be restricted to a bunch of devops.

Track app deployments with Deploy Boards

Deploy Boards offer a consolidated view of the current health and status of each CI environment running on Kubernetes, pod by pod. Not available with most of GitHub's third party CI/CD solutions.

Learn more about Deploy Boards

Flexible permissions

Set permissions according to people's role, rather than either read or write access to a repository. Don't share the source code with people that only need access to the issue tracker.

See the various roles

Innersourcing

Internal projects in GitLab allow you to promote innersourcing of your internal repositories.

Find out more about innersourcing

Work-in-Progress Protection

Simply add 'WIP' to the title of a merge request to prevent anyone from merging it. This gives you all the code review power of merge requests, while protecting unfinished work.

WIP Merge documentation

The best place for large open source projects

GitLab is meant to be the best place for any software project. The team behind GitLab is addressing issues that maintainers and contributors to large open source projects are facing, to make it easier to do both.

Making GitLab better for large open source projects

The most comprehensive import feature set

GitLab can import projects and issues from more sources (GitHub, BitBucket, Google Code, FogBugz, Gitea and from any git URL) than GitHub or any other VCS. We even have you covered for your move from SVN to Git with comprehensive guides and documentation.

Making it easier to get up and running with GitLab

Export projects

GitLab allows you to export your project to other systems.

We don't restrict access to your data

Powerful Issue Tracker

Quickly set the status, assignee or milestone for multiple issues at the same time or easily filter them on any properties. See milestones and issues across projects.

Due date

In GitLab, you can set a due date for individual issues. This is very convenient if you have small tasks with a specific deadline.

Due dates documentation

Move issues between projects

You can move issues between projects in GitLab. All links, history and comments will be copied and the original issue will reference the newly moved issue. This makes working with multiple issue trackers much easier.

Group-level milestones

View all the issues for the milestone you’re currently working on across multiple projects.

Example milestone for GitLab 8.2 (need to be logged in)

Create new branches from Issues

In GitLab, you can quickly create a new branch from an issue on the issue tracker. It will include the issue number and title automatically, making it easy to track which branch belongs to which issue.

See how in our documentation

Assign multiple people to an issue / MR

GitHub allows you to assign multiple people to an issue or pull request. GitLab doesn't allow you to do this, but allows for approvals in merge requests, which offsets this there. For issues, GitLab does not have an equivalent feature, but a feature request has been submitted for this.

GitLab issue to implement multiple assignees

Allow edits from upstream maintainers in branch

In GitHub, when a user opens a pull request from a fork, they are given the option that allows the upstream repository contributors to collaborate with them on their new branch. GitLab allows you to restrict pushes very carefully, but does not have this option.

GitLab issue to implement the same feature

Application performance monitoring

GitLab collects and displays performance metrics for deployed apps, leveraging Prometheus. Developers can quickly and easily determine the impact of any changes, without leaving GitLab. GitHub requires a 3rd party product, adding additional cost and separate workflows.

Learn more about monitoring deployed apps

Cycle Analytics

GitLab provides a dashboard that lets teams measure the time it takes to go from an idea to production. GitLab can provide this data because it has all the tools built-in: from the idea, to the CI, to code review, to deploy to production. GitHub can't provide this data.

Feature Highlight: Cycle Analytics

Slash commands

GitLab provides a convenient way to change meta data of an issue or merge request withouth leaving the comment field with slash commands.

Documentation about slash commands

Issue board

GitHub has Projects, which are not tied to labels in any way, making it hard to automatize flows. GitLab has Issue boards. Each list of an issue board is based on a label that exists in your issue tracker. The Issue Board will therefore match the state of your issue tracker in a user friendly way.

Feature highlight: Issue Boards

Drag and drop tasks

You can change the order of tasks in markdown on GitHub. GitLab does not have this ability, but is considering implementing it.

See the GitLab issue to implement this

Time tracking

Time Tracking in GitLab lets your team add estimates and record time spent on issues and merge requests. GitHub doesn't have this feaure out of the box.

Check the Time tracking feature

Built-in Docker Registry

GitLab Container Registry is a secure and private registry for Docker images. It allows for easy upload and download of images from GitLab CI. It is fully integrated with Git repository management.

Documentation on Container Registry

New features every month

GitLab is updated with new features and improvements every month on the 22nd.

Last updated: January 31, 2017 Download as PDF

Since GitLab fans wrote most of the text here there is a pro-GitLab bias. Nonetheless we try hard to ensure the comparisons are fair and factual. Please also add things that are great in other products but missing in GitLab. If you find something that is invalid, biased, missing, or out of date in the comparisons, please open a merge request for this website to correct it. As with all the pages on this website you can find where this page lives in the repository via the link in the footer.

GitLab is open-core

GitLab is an open-core product whereas our competitors are closed-source products. The GitLab Community Edition is fully open-source, and the Enterprise Edition is closed-source.

Access to the source code

You can see the GitLab Community Edition and Enterprise source code at any time, even on your own server.

Fully modifiable

Unlike closed-source software, you can modify GitLab's source code. Be it right on the server or by forking our repositories, you can add features and make customizations. We do recommend that you try to merge your changes back into the main source code, so that others can benefit and your instance stays easy to maintain and update.

Viable long term

GitLab has a solid community with hundreds of thousands of organizations using and often contributing to the software. This means that GitLab is much more viable for long term usage, as it's not reliable on a single company supporting it.

New stable version every month

GitLab releases a new stable version every single month, full of improvements, new features, and fixes. This allows GitLab to move fast and respond to customer requests extremely quickly.

Build with a community

GitLab is built by hundreds of people every month. Customers, users and GitLab, Inc. all contribute to every release. this leads to features that organizations actually need, such as easy, yet powerful user management.

Choose the GitLab edition that is best for your team

Explore our products

Try GitLab Enterprise Edition risk-free for 30 days.

No credit card required. Have questions? Contact us.