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
If you need notifications from a hosted Git service, however, it’s time to look at GitHub and GitLab.
GitHub
GitLab
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