GitLab compared to other tools

vs.

TFS/VSTS vs GitLab (Core)


FEATURES

Commit graph and reporting tools

GitLab provides commit graphs and reporting tools about collaborators’ work.

Learn more about commit graphs

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

Image Discussions

Within a commit view or a merge request diff view, and with respect to a specific location of an image, you can have a resolvable discussion. Have multiple discussions specifying different areas of an image.

Image Discussions

Merge Request Commit Discussions

Comment on a commit within the context of a merge request itself

Merge Request Commit Discussions

Create merge request from email

Create a merge request from email by sending in the merge request title, description, and source branch name.

Create merge request from email

Lock Discussion

Lock down continued discussion in an issue or merge request as a Master role or higher, to prevent further abuse, spam, or unproductive collaboration.

Lock Discussion

First time contributor badge

Highlight first-time contributors in a project.

Preview your changes with Review Apps

With GitLab CI/CD you can create a new environment for each one of your branches, speeding up your development process. Spin up dynamic environments for your merge requests with the ability to preview your branch in a live environment.

Learn more about Review Apps

Multiple approvals in code review

In GitLab, to ensure strict code review, you can require a specific number of approvals on a merge request by different users before being able to merge it. You can undo an approval by removing it after the fact.

Approvals Documentation

Ease of migration from other providers

GitLab lets you easily migrate all repos, issues and merge request data from your previous provider.

Learn how to migrate your projects to GitLab

Search files with fuzzy file finder

GitLab provides a way to search a file in your repository in one keystroke.

Read about the file finder in our documentation

Fast-forward merge with option to rebase

With this setting at the project level, you can ensure that no merge commits are created and all merges are fast-forwarded. When a fast-forward merge is not possible, the user is given the option to rebase.

Learn more about rebase before merge

Squash and merge

Combine commits into one so that main branch has a simpler to follow and revert history.

Learn more about squash and merge

Import from GitLab.com

Import projects from GitLab.com to a private GitLab instance.

Learn more about importing projects from GitLab.com

Limit project size at a global, group, and project level

Ensure that disk space usage is under control.

Learn more about project size limiting

Merge request approvals

When a project requires multiple sign-offs, GitLab Enterprise Edition enables you to make sure every merge request is approved by one or more people. Merge request approvals allow you to set the number of necessary approvals and predefine a list of approvers that will need to approve every merge request in a project, and in-turn improve your code’s quality.

Learn more about merge request approvals

Merge Requests

Create merge requests and @mention team members to review and safely merge your changes.

Learn more about merge requests

Merge conflict resolution

Preview merge conflicts in the GitLab UI and tell Git which version to use.

Learn more about the merge conflict resolution UI

Merge request versions

View and compare merge request diffs from the merge request UI.

Learn more about merge request versions

Inline commenting and discussion resolution

Code or text review is faster and more effective with inline comments in merge requests. Leave comments and resolve discussions on specific lines of code. In GitLab, Merge Request inline comments are interpreted as a discussion. You can configure your project to only accept merge requests when all discussions are resolved.

Learn more about resolving discussions

Cherry-picking changes

Cherry-pick any commit in the UI by simply clicking the Cherry-Pick button in a merged merge request or a specific commit.

Learn more about cherry picking merge requests

Activity Stream

View a list of the latest commits, merges, comments, and team members on your project.

Learn more about the Activity Stream

Custom Notifications

Be notified by email, Slack, or ToDos anytime there are changes to an issue or merge request.

Learn more about Custom Notifications

GPG Signed Commits

Sign commits and prove that a commit was performed by a certain user.

Read more about GPG signed commits

Reject unsigned commits

GitLab Enterprise Edition Premium allows you to enforce GPG signatures by rejecting unsigned commits.

Read more about enforcing push rules

Verified Committer

Verify that a push only contains commits by the same user performing the push.

In development for GitLab. Follow this link for more information.

File Locking

Working with multiple people on the same file can be a risk. Conflicts when merging a non-text file are hard to overcome and will require a lot of manual work to resolve. With GitLab Enterprise Edition Premium, File Locking helps you avoid merge conflicts and better manage your binary files by preventing everyone, except you, from modifying a specific file or entire directory.

Learn more about File Locking

Merge when pipeline succeeds

When reviewing a merge request that looks ready to merge but still has one or more CI/CD jobs running, you can set it to be merged automatically when the jobs pipeline succeeds.

Learn more about Merge when pipeline succeeds

Work in Progress merge requests (WIP)

Prevent merge requests from accidentally being accepted before they’re completely ready by marking them as Work In Progress (WIP). This gives you all the code review power of merge requests, while protecting unfinished work.

Learn more about WIP MRs

Revert specific commits or a merge request from the UI

Revert any commit or a single merge request from GitLab’s UI, with a click of a button.

Learn how to revert a commit or a merge request from the GitLab UI.

Powerful branching

A branch in Git contains the entire history that preceeds it. It’s also created or moved towards instantly and easily shared.

See the Git documentation to get started with branches

Git has smaller size requirements

A single repository in Git is typically a number of times smaller than the same repository in SVN.

Read about using Git with GitLab

Protected branches

Granular permissions for branches you want to protect.

Read about protected branches

Restrict push and merge access to certain users

Extend the base functionality of protected branches and choose which users can push or merge to a protected branch.

Read about protected branches

Protected tags

Granular permissions for tags you want to protect.

Read about protected tags

Integrated Git-powered wikis

A separate system for documentation called Wiki, is built right into each GitLab project. Every Wiki is a separate Git repository.

Learn more about GitLab Wikis

Project Templates

When creating a new project, you can choose to kickstart your project from a predefined template that already has some working example code and CI pre-configured.

Read more about Project Templates

Web IDE

Contribute to projects faster by using the Web IDE to avoid context switching in your local development environement. The Web IDE is integrated with merge requests including reviewing the merge request diff and switching between merge request without leaving the Web IDE. It is also integrated with GitLab CI with CI statuses and job traces.

Learn more about the Web IDE

Create projects with Git push

Push new projects to the desired location and a new private project will automatically be created.

Learn more about creating Projects

Snippets

Store and share code snippets to engage in a conversation about that piece of code. You can embed snippets on any blog or website using a single line of code.

Learn more about Snippets

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 the trademark of GitLab, Inc. All other logos and trademarks are the logos and trademarks of their respective owners.

GitLab is open core

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

Access to the source code

Unlike closed source software, you can see and modify the GitLab Community Edition and Enterprise Edition source code at any time. 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.

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.

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.

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.