Gitlab vs Github?
Which one is better in 2020? Which one should you pick?
In order to give you an accurate answer, I’m going to dive deep into what both GitLab and Github offer to see what makes them stand out.
NOTE: This article is written based on heavy data. It has been updated twice since 10th April 2020. The latest update happened on 11th June 2020. I personally reached out to nearly a hundred software experts to pick their brains on the subject. And I’ve also crawled the most popular forums (like Reddit, Quora, Stackoverflow, DreamInCode, Hashnode, Hacker News, and more) on the web for the topic — “Gitlab vs Github in 2020.”
So, rest assured that you are getting only fresh and up-to-date content here.
Let’s dive right in:
What is Github, and what is GitLab?
GitLab and Github are both version-control distributed git platforms used for storing your code inside git repositories.
There is a short introduction to Git below for those who are unfamiliar with it. Feel free to skip this section if you consider yourself an experienced developer:
A git repository is a place where you store, share, test, and collaborate with your teammates on your code.
What’s unique about Git is that it’s distributed. It allows you to have your own local repositories. You can work on your code without having access to the internet.
Once you’ve done changes to the code in your local repository, you can then push these changes to the master repository and wait for approval. When approved, you basically repeat the process until you’ve built the feature you are developing.
If you want to learn more about Git, you can refer to this article.
OK, let’s start with Github…
Github — History
Github is a git repository platform that keeps your code safe and secure.
Github is also known as a collaboration platform as it helps developers to communicate effectively on their code.
It boasts great features such as issue tracker, Github bug tracking system, source code management, a built-in CI/CD tool that came to the world in November of 2019, and of course, a built-in Web IDE released on May 6th 2020. Github offers wikis as well as Markdown-based readmes, and other documentation.
In its second year, Github reached 100,000 users and more than 135,000 public repositories were created.
In 2012, Github raised $100 million with an evaluation of $750 million.
In 2015, Github raised a second round of $250 million. At that time, the company was evaluated at $2 billion.
And as you probably know, in 2018, Microsoft acquired Github for $7.5 billion. However, it was then when Github noticed a significant decrease in their number of active users. And that was the time when GitLab became quite popular and turned into the powerful Github competitor that we today know.
Regardless, Github is still the most popular git repository platform in the world. It boasts more than 50 million users and 2.9 million business & organizations , along with 100 million repositories.
OK, so let’s see what Gitlab brings to the table…
GitLab — History
GitLab was founded in 2011 by Dmitriy Zaporozhets and Valery Sizov in Dmitriy’s house in Ukraine. Dmitriy said that he needed an efficient collaboration tool. He knew that communication is essential for completing projects successfully. So he decided to create one.
Similar to Github, GitLab also comes with pretty much all the features Github offers. However, GitLab was initially designed with a built-in CI/CD tool, which makes it one of the most popular CI/CD frameworks today.
GitLab empowers you to fully track and monitor your code so that you can see if there’s anything that can be improved.
In 2012, Sid Sijbrandij, the current CEO of GitLab, created a post in Hacker News — the post went viral. They say that more than 300 people signed up for the beta GitLab version. And that’s when GitLab started gaining strong momentum.
In 2016, GitLab grew significantly, and more than 100,000 organizations, along with millions of users, used GitLab.
In 2018, when Microsoft acquired Github, a lot of people transitioned to GitLab. That was also another case in which GitLab experienced a spike in the numbers of new users.
OK, great, now you know what’s the story behind each platform.
So let’s dive right in and see what the differences between GitLab and Github are.
GitLab vs Github — The Main Differences
There are a couple of significant differences that may cause you to prefer GitLab over Github or the other way around. Let’s check them out:
In the past, GitLab had a significant advantage over Github by providing unlimited private repositories for free.
However, as of January 2019, Github delivers free private repositories for teams of 3 users or less.
NOTE: As of 14th April 2020, you can now access Github unlimited private repositories for free with unlimited number of Github collaborators on board.
Also, Github limits the repository storage to 500 MB per repository while GitLab caps the storage out at 10GB per repository.
Yet, Github delivers code scanning and secret scanning free to all public repositories, as part of Github Advanced Security system. Github repositories also allow code hosting for better management of the Github DevOps lifecycle.
With its latest update on 6th May 2020, Github rolled out Discussions. Discussions make it easy to begin, respond to, or organize conversations live inside your project repository. What’s cool, answered questions can be marked so no confusion among your team will come along. Thus you can organize your Github milestones easily.
All in all, both GitLab and Github repos have their pros and cons, but they fair quite well against one another.
What’s unique about GitLab is that it comes with a built-in CI/CD framework.
It enables you to run automated tests quickly. And what’s more, it’s free.
One of the main reasons why developers used to switch over to GitLab was the great built-in CI/CD tool that comes with it.
But not anymore.
With Github’s newly released built-in CI/CD framework, Github is back in the game.
You no longer need to integrate a 3rd party CI/CD tool to Github in order to automate tests and speed up the development process. Though you still can do it if you prefer Jenkins or CircleCI over Github Actions.
Github definitely made an excellent move by releasing its own built-in CI/CD framework. Yet, because GitLab has been offering its own CI/CD tool for so many years, we can confidently say that GitLab CI/CD is way ahead of Github. As a matter of fact, the Continuous Integration framework inside GitLab is ranked as one of the best tools out there, if not the best.
Also, GitLab comes as well with integrations to various tools. That’s in case you prefer another CI/CD framework.
Overall, the built-in CI/CD tool is one of the main advantages that used to put GitLab ahead of the curve. But now, with the release of Github Actions, GitLab is facing a strong competition.
Just a year ago, GitLab was the leading force when it came to Continuous Integration and deployment.
However, with the release of Github Actions in November of 2019, Github now features its own built-in CI/CD framework as already mentioned. This puts Github high in the rankings, among other CI/CD tools.
Github Actions enable you to quickly automate tests and deploy your Github code so that you can meet all your deadlines.
GitHub Actions supports Node.js, Python, Java, Ruby, PHP, Go, Rust, .NET, and more.
Also, it looks like Github’s CI/CD tool managed to attract a lot of developers — more than 50 million developers use Github today.
What’s cool about Github Actions is that it features “matrix builds.” It allows you to run multiple versions of your applications in parallel. In other words, you can test two versions of your code on macOS and Windows. Pretty cool, eh?
And because it’s a relatively new tool, Github Actions is still going through a lot of optimization.
So if you encounter problems , take it with a grain of salt and submit your ticket because these issues will probably be fixed shortly.
But all in all, both GitLab and Github are competing quite equally now.
GitLab definitely stands in front of Github when it comes to handling your entire DevOps lifecycle.
Give the image below a glance to see how Github compares to GitLab:
Even though Github offers quite a large number of features, GitLab simply handles your entire software development lifecycle (SDLC). From the idea in your head to the code in the cloud. The complete DevOps tool, as GitLab calls itself.
However, keep this mind:
GitLab indeed offers tons of features. And it’s really great. Yet, the interface isn’t quite friendly. It might leave you mind-boggled if you are just starting outwith GitLab.
There’s actually a tradition for GitLab to release a new feature every month on the 22nd. And that’s great because GitLab is the most feature-rich git platform currently available.
However, we’ve met a lot of GitLab users on forums complaining about GitLab features being “halfway-done.” Not all features are fine-tuned, which leaves some customers disappointed.
And the thing with Github is that it is designed with a super-simple interface and infrastructure.
Although Github doesn’t provide you with all the features for a full SDLC, Github won’t overwhelm you with “halfway-done” features.
So, basically, you’ll have to make a choice. Would you prefer to work in a pleasant-to-the-eye and intuitive environment? Or you’d rather risk GitLab’s un-intuitive interface in order to have everything you need for your SDLC in one place.
Documentation — Import/Export
When it comes to importing and exporting files, GitLab delivers step-by-step documentation. It makes the entire GitLab worklflow effortless and smooth.
Github, however, doesn’t come with thoroughly-explained documents on importing and exporting. Which might be considered as a disadvantage when it comes to your Github workflow, especially in smaller dev teams.
On the other hand, Github comes with a tool called — Github importer. What’s cool about it is that it automates the whole importing process for you. And this actually makes it pretty easy to get onboard with Github.
So if you are planning to switch over to Github, the Github importer tool will definitely help you a ton. Though, there’s not much documentation delivered regarding the exporting part.
All in all, GitLab brings quite an extensive documentation on import/export. Yet, Github makes it super easy with its Github importer tool.
Where Github really excels at is the community it brings to the table.
Once you sign up for Github, you become a part of a strong open-source community of 50 million developers. Everybody contributes to others’ code, makes suggestions and optimizations, in order to help each other.
Honestly, Github’s community is strongly bonded. People are friendly and will give you helpful and honest feedback.
GitLab also features quite an exciting community. They are hosting community events and connecting open source contributors to ensure everybody has a great tim.
However, if you are looking for the most popular platform and community among developers, Github is the place to be in.
When it comes to the Enterprise editions of both platforms, there are some significant differences we will have to mention here.
Based on most people’s opinion, GitLab delivers better Enterprise experience than Github.
GitLab enterprise pricing is also significantly cheaper compared to Github enterprise pricing. Therefore, GitLab instantly becomes a preferred option by teams and companies that have a tighter budget.
On the whole, GitLab is pretty strong in features when it comes to enterprise companies. It definitely delivers a feature-rich experience.
Both Gitlab enterprise support and Github enterprise support teams do a great job in solving users issues.
Yet, Github is still highly popular among larger development teams and organizations as it has established quite a strong position on the market — been here since 2008.
Github Pricing vs GitLab Pricing
Take a quick glance at the pricing structure:
Both GitLab pricing and Github pricing plans fair quite well against one another with a slight difference in Github Enterprise plan which $2 more expensive than GitLab Premium plan.
Basically, Github costs are slightly higher in the more robust pricing plans.
Github Team plan is quite attractive as it allows you to have an unlimited number of collaborators on board and gives you an extra 2GB of Github Package storage. It’s their most popular pick (excluding the free plan).
You can also access Github merge requests and Github diffs and code reviews while being on the free plan.
GitLab Bronze option brings a total of 2,000 CI pipeline minutes a month, while Github Team plan delivers 3,000 CI pipeline minutes a month. With higher plans on both platforms, you as well receive more repository storage.
So, it’s pretty much a personal preference here. If you have the budget and you’d like to get higher amounts of CI pipeline minutes, then go for Github. Otherwise, GitLab would be great for smaller teams or personal use.
Repository Access — Authentication
GitLab enables you to modify people’s access to repositories based on their role in the company.
With Github, you can basically decide who gets read or write access to your repositories.
Personally, I prefer Github’s way of providing you with access. However, you’ll have to test it out and see what works best for you and your team.
Other slight differences between GitLab and Github:
- GitLab is designed with a Web IDE. What’s cool, GitLab’s Web IDE is integrated with merge requests and their built-in CI/CD framework. Thus, you’ll be able to speed up your GitLab workflow. Yet, Github doesn't fall behind either. On May 6 2020, Github announced its brand new built-in IDE (also known as Codespaces). It’s powered by Visual Studio technology. Codespaces is designed with a browser-based version of the original VS Code editor. The pricing model for Codespaces isn’t devised yet. However, the code editing features of Codespaces will always be free for Github free accounts. But it’s known that if you use Codespaces cloud environments, Github will probably offer pay-as-you-go pricing model to make it comfortable for you. During the beta however, Codespaces will be free for everybody.
- Cycle analytics are available in GitLab. Cycle analytics are basically reports that tell you how your existing GitLab workflow is performing based on time and planning. You can also get access to Github metrics inside Github insights. Yet, you should know that Github insights is only available to Github One users, which is the enterprise edition of Github.
- Monitoring — similar to the Cycle Analytics, GitLab collects a vast amount of data in order to provide you with actionable insights and metrics to determine your team performance. Again, Github Insights can armour you with all the essential Github stats, from developer to CEO, so you can set achievable goals and ship working software faster.
- Open Source — GitLab is an open source platform whereas Github is closed core. Both Github and GitLab offer free private git repositories for open source projects. However, Github has limited that to only three users. While GitLab allows you to have unlimited free private git repositories as well as an unlimited number of users on board. It’s vital to say that you can install GitLab on your own servers while with Github, you can’t do that. NOTE: As of April 14 2020, Github allows you to bring unlimited collaborators on board along with an unlimited number of repositories.
- Issue Tracker — both GitLab and Github have their own issue trackers. Github project management tool is super simple and easy to use. You can access Github kanban boards that are great to work with. The Github roadmaps are also great as they enable you to clearly see the direction your project is moving towards. Whereas GitLab project management issue tracker might be a bit complex at a glance. Yet, switching and moving issues between projects can be done easily as GitLab project board is quite flexible in features.
- Burndown charts can be found inside GitLab while with Github, you’ll have to use a 3rd party tool like ZenHub. Burndown charts are super useful when developers have to track their progress during sprints or when testing new software features.
- Issue weights — these can be beneficial when it comes to prioritizing your tasks using Agile methodologies. GitLab allows you to assign a weight to your issues so that you can easily manage your issues through Agile methods. While with Github, you can’t do that.
- CSV file export — GitLab, as already mentioned, has a pretty nice documentation about exporting files. Once you go through it, you’ll be able to export file issues to email addresses as attachments easily. With Github, you might have a hard time exporting files as there is a lack of documentation.
- Both Github and GitLab offer web-hosting. You can read about Github Pages to learn more about its web-hosting. Self-hosting is likewise available with GitLab, yet with GitHub, you need to be an enterprise user to access Github self-hosting (on premises).
- Support teams — Honestly, we haven’t noticed a big difference in GitLab and Github support teams. They are great. Kudos to them. Yet, more often than not, we used contact GitLab support team more frequently than Github team as GitLab server tends to runs a bit slower which causes some discomfort. Yet, GitLab team has been fantastic in their response. On the other hand, Github server status has been acting more professionally than GitLab which adds extra layers of reliability to Github’s image as a company. Github servers are rarely down.
So that’s pretty much it.
Final Thoughts — Recap
If you have a hard time deciding which one is the right pick for you, let me give you my point of view… and tell you in which cases you should go with Github and when you should stick to GitLab.
So first, why use GitLab?
If you are looking for something flexible, that can handle your entire SDLC, and also cost-less… GitLab will be the perfect option for you.
The uniqueness of GitLab stems from its amazing features — issue tracker, built-in CI/CD, deployment, monitoring — that enable you to go from development to cloud without having to use other 3rd party tools. You have it all in one place. Therefore, GitLab is great for personal use.
However, keep in mind that due to the excessive amount of features, the interface might be a bit overwhelming. So you’ll have to give it some time if you are just starting in order to get the full picture.
NOTE: Here’s an interesting fact about GitLab — it has a Global Volunteer Month: each December, GitLab supports all volunteers in the development of a software solution that will help the local community or in any other social responsibility endeavor
OK, and now, why use Github?
On the other hand, if you prefer a simpler alternative that is trusted by 50+ million developers worldwide, Github will be the pick for you.
What’s more, Github is also highly preferred by larger teams that depend on crystal clear team communication. That’s because Github delivers fantastic collaboration tools in order to make your team communication efficient so that you guys can develop faster and produce quality code.
Github also provides you with a larger number of integrations compared to GitLab. This enables you to connect Github with all of your favorite tools.
Also, you can host your own project portfolio in Github as most companies today ask for it when showing up on interviews. Having a Github resume shows employers that you know how to walk the walk.
Github is also a great platform for beginners, especially if you are looking for an intuitive platform to host your projects.
And as of November 2019, Github can also help you go from development to deployment stage without any 3rd party integrations. With Github’s built-in CI/CD tool — Github Actions, development becomes faster and easier.
Oh, and by the way, if you are an enterprise Github user, you’ll have the privelege to access Private Instances which empowers you with enhanced security, compliance, and policy features including bring-your-own-key encryption, backup archiving, and compliance with regional data sovereignty requirements. Yet, Private Instances is still to come.
Yet, when it comes down to a full DevOps lifecycle, GitLab still tops the rankings with its top-notch built-in CI/CD framework and monitoring features.
GitLab and Github Reviews
I personally reached out to some experts in the field asking them what they think about “GitLab vs Github in 2020”- of course, not all responded, but we got a nice amount of good answers.
“GitLab is much more than Github, and when it comes to DevOps full lifecycle, GitLab is way ahead, but it’s not free.” — Javin Paul, @javarevisited
“Both are web-based Git repositories offering everything that Developers or DevOps need. Both are driven by a highly active community of millions of developers. The most important difference is that you can install GitLab on your own servers for free while GitHub only provides free web accounts to anyone. At enterprise level it is a matter of taste if you choose GitHub or GitLab, feature wise they are pretty much the same.” — Sebastian, CTO, Website: https://pixolution.org/
“GitHub is a git-based repository platform for managing your code and backup in an online repository. GitLab is a repository manager that lets the task management teams collaborate on the development of code and test the code. GitLab has the CI/CD for the project management, if you need this you need to go for GitLab because GitHub only manages your code.” — Kenny Trinh, CEO of Netbooknews, Website: https://www.netbooknews.com
“I’ve used Github, GitLab, and even BitBucket. I prefer Github for its simple UI and pull request commenting. Before, you would have to pay for private repos on Github, but now they’re free — albeit with limited contributors. GitLab is great for integrating your own server with continuous integration (CI). Bitbucket is useful if you use other Atlassian products like JIRA or Confluence. It’s easy to integrate Github with third-party CI/CD, code quality checks, but others might prefer having it all under one platform (GitLab).” — Anthony De Guzman, Co-Founder of Breezeful (YC W20), Website: https://breezeful.com
“If you want to compare GitHub with GitLab, there’s one major difference. GitHub is a social platform. With that in mind, it makes the VS question rather moot. It’s like comparing your photo album to Instagram. Both allow you to store your photos, but the interaction or lack thereof is fundamentally changed. I use both for different purposes, there is a small overlap, but nowhere near enough to force someone to choose one over the other. I love GitLab because it offers unlimited private repos. I usually use GitHub for open-source stuff as it’s free, and it is the go-to spot to find open-source projects.” — Scott Krieger, Creative Director & Web Developer, Website: https://studiofifty-four.com/
“After the purchase by Microsoft, GitHub positions itself more as a kind of social media channel: For example, the “explore” option has been largely revised, and so has the related email. GitLab has kept to its stable path as the open-source alternative to the more-commercial GitHub. This ‘pattern’ has been seen before, and again it’s up to each one to decide on which side you feel more comfortable: the commercially-driven side or the more idealist side.” — Peter Thaleikis, software blogger — https://peterthaleikis.com/
“GitHub is a good-old, well-known, and popular software development platform — everyone knows it, and everyone uses it. GitLab is a less popular platform, at least yet, but it is already more functional and more convenient. Moreover, I admire GitLab as a company — they have a sound corporate culture; for instance, all their minutes last no longer than 7 minutes.” — Alex Pletnov, CTO, Website: https://keenethics.com/
“There are a lot of differences between Gitlab and Github and I’ve used both. We started on Github and moved to host our own GitLab and now are back to GitHub. Gitlab let us do pre-receive hooks for free but when we simplified our CI we didn’t need it anymore and Github was simpler.” — Gobi Dasu, LD Talent
P.S. If you still have doubts about GitLab vs Github, you might consider heading to Codegiant — a GitLab and Github alternative.
Let me tell you why Codegiant may be a good fit for you:
Codegiant is also a git repository platform that offers a simple issue tracker, built-in CI/CD framework, bug tracking system, source code management, and more importantly, it has quite an intuitive interface. So if you are looking for a lot of features combined with a pleasant-to-the-eye interface, hop over to Codegiant.
That’s pretty much it to this “GitLab vs Github” article. Hope it helped you to decide whether GitLab or Github is better for you! Feel free to share it if you think some of your colleagues or friends can benefit from it. Leave a comment below if you’d like to add something to the overall assessment.