GitLab Vs GitHub: Key Differences

Mayank Goyal
5 min readJul 28, 2019

--

Version Control repository management services are a key component in the software development workflow. In the last few years, GitHub and GitLab positioned themselves as handy assistants for developers, particularly when working in large teams.

Both Github and GitLab are Web-Based Git repositories.

A git repository is a central place where developers store, share, test and collaborate on web projects.

Nowadays, GitLab and GitHub are more than “just” git repositories for developers. GitLab offers complete DevOps solution to developer teams and projects, while GitHub has more than ever developers community and projects.

Basics of GitHub and GitLab

GitHub:

GitHub is a Git-based repository hosting platform with 26 million users (March 2017). Originally, GitHub launched in 2008 and was founded by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett.

GitHub is a collaborative code repository to host and review code, manage projects and build software. It offers all of the distributed version control and source code management (SCM) functionality of Git as well as adding its features. It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project.

GitHub projects can be made public and every publicly shared code is freely open to everyone. You can have private projects as well, but only 3 collaborators allowed on the free plan.

GitLab:

GitLab is a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking and CI/CD pipeline features, using an open-source license, developed by GitLab Inc.

GitLab is a repository manager which lets teams collaborate on code. Written in Ruby and Go, GitLab offers some similar features for issue tracking and project management as GitHub.

Founded by Dmitriy Zaporozhets and Valery Sizov in 2011, GitLab employs more than 500 people and has more than 1,400 open source contributors. According to Wikipedia, GitLab has 100,000 users (March 2017) and is used by enterprises such as IBM, Sony, and NASA.

Key Differences

  1. CI / CD: Continous Integration and Continous Deployment

One of the big differences between GitLab and GitHub is the built-in Continuous Integration/Deployment of GitLab.

Free CI/CD with shared or personal Runners :

GitLab.com has shared Runners that allow you to use GitLab CI/CD completely free up to 2000 build minutes for private projects and unlimited for public projects. Alternatively, you can set up your own for faster build processing, unlimited build minutes, or special requirements.

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 web app. The job results are displayed on merge requests for easy access.

GitLab is clearly addressing the DevOps market as well as offering a operations dashboard that lets you understand the dependencies of your development and DevOps efforts. Where as GitHub CI/CD is accomplished via integrations with other products.

2. Importing and Exporting Projects

The most comprehensive feature set.

Importing Projects :

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. GitLab even have you covered for your move from SVN to Git with comprehensive guides and documentation.

GitLab offers detailed documentation on how to import your data from other vendors — such as GitHub, Bitbucket — to GitLab.

GitHub, on the other hand, does not offer such detailed documentation for the most common git repositories. However, GitHub offers to use GitHub Importer if you have your source code in Subversion, Mercurial, TFS, and few others.

Exporting Projects :

GitLab allows you to export your project to other systems. It seems to do a pretty solid job, offering you the ability to export your projects including the following data:

  • Wiki and project repositories
  • Project uploads
  • The configuration including webhooks and services
  • Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, and other project entities

GitHub, on the other hand, seems to be more restrictive when it comes to export features of existing GitHub repositories.

3. Community

GitHub has more than 36 million developers with more than 100 million repositories, driven by the highly active GitHub community.

On the other hand, GitLab undertook some great activities, such as hosting community events and connecting open source contributors.

4. Issue Tracking

Warning: You will fall in love❤️ with GitLab after reading this.

GitHub provides a simple issue tracker that lets you change status and assignee for multiple issues at the same time. So does GitLab. But…

  • GitLab lets you manage issues using Agile practices by setting the weight of an issue. This is very useful when you have a large number of issues running around you to prioritize, orient, and resolve the issues.
  • In GitLab, you can also set a due date for individual issues. This is very convenient if you have small tasks with a specific deadline.
  • Keep your information secure with Confidential Issues. With GitLab, you can create confidential issues visible only for project members with Reporter access level or above.
  • Explicitly mark issues as related and track their status.
  • 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.
  • Mark an issue as a duplicate of another issue, closing it.
  • Issues can be exported as CSV from GitLab and are sent to your default notification email as an attachment.
  • GitLab provides a convenient way to change metadata of an issue or merge request without leaving the comment field with quick actions.

Wrapping it Up

Undoubtedly, GitHub is still the most popular git repository with the largest number of users and projects. However, GitLab is doing a fantastic job offering your entire development (and DevOps) teams great tools for more efficient workflows. Both communities are growing rapidly day after day. And We Love both GitHub and GitLab. 😀

--

--

Mayank Goyal

GitHub Campus Expert • Beta Microsoft Student Partner • SIH20 Finalist • IIITian • Table Tennis