GitLab compared to other tools

This page compares GitLab to non-GitLab software. To compare different versions of GitLab with each-other see our self hosting products and GitLab.com SaaS plans.


GitLab Merge Requests vs. GitHub Pull Requests

FEATURES

Built-in CI/CD

GitLab has built-in Continuous Integration/Continuous Delivery, for free, no need to install it separately. Use it to build, test, and deploy your website (GitLab Pages) or webapp. The job results are displayed on merge requests for easy access.

Learn more about CI/CD

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.

Learn more about Cycle Analytics

Time tracking

Time Tracking in GitLab lets your team add estimates and record time spent on issues and merge requests.

Learn more about Time Tracking

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

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

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

Todos

When a user is mentioned in or assigned to a merge request it will be included in the user Todos, making the development workflow faster and easier to track.

Learn more about Todos

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

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

Container debugging with an integrated web terminal

Easily debug your containers in any of your environments using the built-in GitLab Web Terminal. GitLab can open a terminal session directly from your environment if your application is deployed on Kubernetes. This is a very powerful feature where you can quickly debug issues without leaving the comfort of your web browser.

Learn more about the web terminal

Comprehensive pipeline graphs

Pipelines can be complex structures with many sequential and parallel jobs. To make it a little easier to see what is going on, you can view a graph of a single pipeline and its status.

Learn more about pipeline graphs

Labels

Labels provide an easy way to categorize issues or merge requests based on descriptive titles as 'bug', or 'documentation'.

Learn more about GitLab Labels

Ability to edit all fields of a merge request

GitLab Merge Requests are editable by the author, the project's owners and users with master access. Every field is editable, as well as the target branch.

Read through GitLab Merge Request's Documentation

Automatically close issue(s) when a merge request is merged

With GitLab, you can use specific keywords to close one or more issues as soon as a merge request is merged.

Learn more about automatically closing issues

Enriched Markdown support

GitLab uses 'GitLab Flavored Markdown' (GFM). It extends the standard Markdown in a few significant ways to add some useful functionality.

Learn more about GitLab Flavored Markdown

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

Issues and merge requests templates

By adding a description template to your MRs, users who create a new issue or merge request can select a template to help them to communicate effectively.

Learn more about GitLab Description Templates

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.

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. All names and logos are recognized 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.