Skip to content

GitHub vs. GitLab - Key Differences

Written by Steven Vaughan-Nichols, on ZDNet

It’s not GitHub versus GitLab. Both are based on the distributed version control system Git, but have very different development approaches.

Many people ask me, “What distributed version control system should I use for my programming project, GitHub or GitLab?” It’s not such a simple question.

First, do you really need a distributed version control system (VCS)? The job of a VCS (also known as a Source Code Management (SCM) system) is to make it easier for multiple developers, designers, and team members to work together on the same project. It ensures that everyone has the same access to the latest code and modifications are tracked.

That’s easier said than done.

That’s why Linus Torvalds thinks of Git as his other great invention. Git is free, open source, and fast. It also works better than its predecessors, such as Apache Subversion, Concurrent Versions System (CVS), Perforce, and Rational ClearCase. There’s a reason why so many VCS services have “Git” in their names.

Git

Sure, you can use Git alone on your own server. If all you’re doing is building a program in-house, a local Git instance is all you need. You can also use Git as a centralized VCS on your own servers or cloud. There’s no need to subscribe to a VCS service when you can create your own. With this model, you can easily execute a project with your team and partners spread around the world.

If you need notifications from a hosted Git service, however, it’s time to look at GitHub and GitLab.

GitHub

GitHub is the oldest of the services. It was developed by Chris Wanstrath, P. J. Hyett, Tom Preston-Werner, and Scott Chacon using Ruby on Rails in February 2008. Because of its pioneering advantage, GitHub became the basis for many open source repositories.

GitLab

GitLab came later; Ukrainian developers Dmitriy Zaporozhets and Valery Sizov created GitLab in 2011. From day one, GitLab was designed to be a collection of collaboration tools as well as a code repository service.

Similarities between Github and Gitlab

They look a lot alike. Both run on Linux servers, come with issue trackers (Issues), and offer a wide variety of third-party integrations and import tools.

Both also have command-line interfaces (CLI) for advanced developers and also offer web-based interfaces for new programmers.

In the case of GitLab, the user interface uses GitLabs’ own Pajamas design system and is written in Vue.js.

GitHub’s user interface, Desktop, is available as a Windows or MacOS program and now also in Visual Studio.

While both support open source, the repositories themselves use a mixed programming model. GitLab used an open-core business approach. In this model, GitLab Community Edition remains free and open source, while GitLab Enterprise Edition has more features and comes with support. As for GitHub, although its code contains some open source code, it’s not an open source project.

Still, fundamentally, both offer open source web-based repositories, Git-based code management, and local file changes with a remote repository. If all you want is basic Git functionality but with someone else to worry about keeping Git running, any of the services will work well for you.

Of course, some people still don’t like GitHub because Microsoft acquired it in 2018. For some, Microsoft will always be the “Evil Empire”, no matter how much Microsoft shows that it now supports open source methods and software - or how often Microsoft CEO Satya Nadella says he loves Linux . That said, this has never been such a big factor. While some users fled GitHub for GitLab and Atlassian BitBucket at the time, it was never the mass exodus that some expected.

GitHub is clearly the 800-pound gorilla of the VCS world. According to programming tools company JetBrains, 77% of developers use GitHub regularly, compared to 40% of GitLab and 25% of BitBucket.

Differences

The main difference is that GitLab has continuous integration/continuous delivery (CI/CD) and integrated DevOps workflows. GitHub allows you to work with the CI/CD tools of your choice, but you’ll need to integrate them yourself. Normally, GitHub users work with a third-party CI program, such as Jenkins, CircleCI, or TravisCI.

Another important difference is that GitHub puts speed first, while GitLab focuses on reliability.

Specifically, GitHub advocates merging new branches with the master branch. That way, you’re ready to deploy quickly, while also quickly reinstating your old version if anything goes wrong.

In the GitLab workflow, you create several stable branches in addition to the master. At the very least, you’ll have stable production and pre-production ramifications. This means that you will need to go through a multi-step testing process. A single code review in the merge request is not sufficient.

Sure, you can make anyone work however you want, but there’s a clear difference in the preferred approach.

Another fundamental difference is that GitLab offers a complete software development solution. They advertise themselves as a complete DevOps platform for a reason. That said, GitLab offers integrations with some third-party programs and platforms, such as Jira, Microsoft Teams, Slack, Gmail, and several other apps and platforms.

GitHub, on the other hand, offers fewer services within its own program, but offers ways to integrate with many external programs and services. This includes software that GitHub worked to integrate with the service and hundreds of other programs via GitHub Marketplace.

Prices

Both services offer free plans. These come with unlimited public and private repositories. This may be enough for you if you’re a solo programmer or have a small team. But if programming is the life of your company, you’re going to need more.

It’s hard to compare the prices of GitHub and GitLab. They’re apples and oranges. I suggest starting with your free plans to get an idea of how your workflow works on each platform and then looking to subscribe to the one that works best for you.

Subscription costs should be the least of your concerns. I used both, and for my small programming purposes, they worked extremely well.

That said, GitLab’s Premium plan costs $19 per month per user, while the full Ultimate plan costs $99 a month.

As for GitHub, the Team plan costs US$ 40 per year per user and the Enterprise plan costs US$ 200 per year per user. But, the heck are the details, you may find that you’ll need to pay for extras no matter which service you ultimately subscribe to.

Don’t let the price be your guide. What really matters is which one will give you the tools and services you need to develop your software in the best possible way.

  • Translated by Prof. Uira Ribeiro