GitHub Enterprise vs. GitLab EE

GitLab compared to other tools

GitLab is the next-generation development toolset that covers 100% of your software development lifecycle.

GitLab unifies chat, issues, code review, CI, CD, and cycle analytics into a single UI. Unlike other source code management tools that only support a portion of your development lifecycle, GitLab delivers a unified experience for every step of the development lifecycle providing the most efficient approach to software delivery. So no matter what line of business you're in, GitLab gives you the edge to compete, innovate, and win.

FEATURES

Handles huge repositories well

Big repository? Huge (>5GB) binary files? No problem. GitLab is built to handle very large repositories, and Git LFS is supported.

Git LFS documentation

One integrated tool

GitHub requires the integration of multiple 3rd party tools to complete the software development lifecycle. GitLab has a completely integrated solution that covers the entire development lifecycle.

Access to the server

You have complete control of the server/instance, so you can install additional software (intrusion detection, performance monitoring, etc.) and view log files on the server itself.

Learn more about logging

Runs on metal

GitLab can run on metal, if you choose to. GitHub needs to be run in a VM.

HA setups

For mission critical releases, you cannot afford downtime. GitHub bundles everything (app server, database etc) into a virtual appliance, while GitLab offers support for HA. GitHub also requires you to shut down your server for back-ups preventing the delivery of code, while with GitLab, you can work in readonly mode during backups.

More information about active servers

Run your own software on your instance

You are free to run your own software on the instance that GitLab is running on. Have your own intrusion detection system? No problem.

Use your configuration management software

GitHub requires the complex configuration of integration tools, from CI to chat apps. With GitLab, you can use your choice of configuration management software, from Puppet, Chef, Ansible for quick and straightforward implementation.

Read about configuration management here

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

Use standard Unix tools for maintenance and monitoring

Use the tools you know for monitoring and maintenance, whether they're standard or your own. GitLab doesn't restrict you.

Powerful AD / LDAP integration

Sync groups, manage SSH-keys, manage permissions, authentication and more. You can manage an entire GitLab instance through the LDAP / AD integration.

More information about AD / LDAP integration

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

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

Chat integration

GitLab ships with Mattermost, an open-source Slack alternative. GitHub requires the installation or the purchase of an external tool.

Issue Weights

GitLab lest you manage issues using Agile practices by setting the weight of an issue.

Issue Weights Documentation

Custom Push Rules (pre-received hooks)

GitHub allows site administrators to create pre-received hooks at a global or project level. GitLab also allows the creation of those hooks at a project or global level, but they can be set by either the project owner or an administrator, and provides a simple user interface to define those push rules.

Documentation on push rules

Prevent committing secrets in the repositories

GitLab provides a way to avoid committing sensitive files to your repositories automatically.

Documentation

Ability to set a project size

GitLab allows to set a project size limit at a global, group and project level.

Documentation on account and limit settings

Multiple issues and merge request templates

Create a template for issues and merge requests in your project to ensure all information is entered correctly and to make it easy to standardize. While GitHub only allows one template, GitLab allows multiple templates.

Templates for Issues and Merge Requests Documentation

Geographic Replication with GitLab Geo

To improve collaboration, remote teams need the ability to be able to seamlessly work across geographical boundaries. GitLab Geo creates read only mirrors of your GitLab instance so your remote employees can clone and fetch large repos quickly, while GitHub has no similar feature.

Read the Geo docs for more information

Lock Files

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, 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.

Read the File Locking documentation

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

Monitoring built-in

GitLab ships with an open source monitoring solution, Prometheus, which offers world-class monitoring of the GitLab service. GitHub only provides hardware metrics using SNMP.

Documentation about Monitoring

Access to and possibility to modify your source code

GitLab Enterprise Edition is publically readable, meaning you can scan or modify the code to meet your security and development needs. The Ruby code in GitHub is proprietary, meaning you cannot edit or view the source code.

Read the GitLab Enterprise Edition license.

Reduce costs with simple licence management

GitHub requires integration with multiple products, each with different billing cycles. GitHub also has complex licensing rules, whereas GitLab has the simplest licence management, and is simply the most comprehensive and affordable software development solution on the market.

Reduce 3rd party maintenance with an integrated solution

GitHub’s 3rd party integrations mean that if something breaks, you will need to contact both vendors to address the problem, resulting in longer wait times. With an integrated solution, GitLab’s rapid response time to issues, means that you can be back up and running in no time.

Omnibus Installation to get up and running quicker

An installation of GitHub requires the implementation of multiple products, each with their own complexities. GitLab has an omnibus package which spans the entire software supply chain, and has all dependencies built in for a simple and straightforward installation and configuration.

Review your teams performance with Cycle Analytics

Team want to improve their each stage of their workflow, but are faced with no way to measure this with GitHub with it’s 3rd party integrations. With built in Cycle Analytics, GitLab records the median time it takes the team to complete each stage in their workflow from idea to production, and provides insights into areas for improvement.

New features every month

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