Red wine vs white, CD vs vinyl, GitLab vs GitHub; some choices just seem impossible.
As two of the most widely used cloud-based Git repositories, GitLab and GitHub seem frustratingly similar on the surface, making the choice between them difficult to navigate.
After Microsoft bought GitHub in 2018 for a staggering $7.5 billion, there have been quite a few changes to the platform, but do any of these make the choice between GitHub and GitLab any easier? 3.5 years after the acquisition, we compare the two, and see if Microsoft has given GitHub the edge.
What is Git and why is it used?
Git is a version control system used to manage source code. It tracks changes to a project and saves ‘screenshots’ of version history, allowing you to refer to any edits and revert back to previous builds in a pinch.
Git also employs a branching code workflow, making it easy for you to work simultaneously on different parts of a project, and merge all changes together in the main branch. This also makes working with Git ideal for collaborative code working, as a team of developers can work at the same time on seperate branches, with all changes being merged together – perfect for a DevOps approach.
What are Git repositories?
Git software does work locally, but for anyone working in a large or remote development team, a cloud based storage solution is much more efficient, and allows for easier collaboration.
A cloud based repository stores all the project files and documentation along with the version history in real-time, giving teams a centralized place to work together on projects without having to manually share updates.
GitLab and GitHub are both popular repositories, and both have grown further than this basic function to encompass deployment, DevOps tools and project management features as well. So what’s the difference between these two Git giants?
What is GitHub?
- Co-founded in 2007 by Chris Wanstrath, Tom Preston-Werner and PJ Hyett, GitHub has grown to become the most widely used Git repository for development teams across the world.
- Has moved on from simply offering a place for developers to monitor their code changes, and has embraced being a full development platform, allowing a variety of integrations from an app marketplace.
- Owns almost 21% of the market share, reporting over 66 million users with companies including Apple, Amazon and Netflix turning to GitHub for their open source projects.
- Taken over by Microsoft – whom many saw as a competitor to GitHub – in 2018.
What is GitLab?
- Launched more recently in 2014 by co-founders Dmitriy Zaporozhets and Sytse Sijbrandij.
- Bills itself as fundamentally being a full DevOps platform focusing on remote work, offering a fully furnished package to measure software delivery, manage teams and even deploy code – all of course whilst boasting Git management.
- The DevOps approach has helped set GitLab apart from competitors, and it now has over 30 million registered users.
GitLab vs GitHub
So which of these repositories is right for you and your team?
The majority of high level functions between the two platforms are the same; functions like self-hosting, code review, issue tracking, documentation and project management tools exist in different ways across both GitHub and GitLab. It’s the areas where the platforms do things differently that might give one the edge when it comes to deciding which is best for you.
Difference between GitLab and GitHub.
- DevOps features
GitLab was founded as a complete DevOps package, and this is where it really sets itself apart from GitHub. The platform comes ready-made with continuous integration (CI) tools, allowing you to automate code deployment and push updates throughout the day. Whilst this automated set up is possible on GitHub, you’ll need to rely on third party apps via the software’s marketplace, with limited integration compared to GitLab’s seamless tools.
- Developer community
One of the main draws of GitHub is the staggering number of developers that exist on the platform; with over 66 million users, GitHub hosts one of the biggest communities of professional, working developers online. There are plenty of tools to network and share with this resource pool, with a collaborative and community based environment encouraged on the platform. Whilst GitLab is working to build its users and match this collaborative community, the current numbers speak for themselves.
- Speed vs Reliability
The platform that will work best for you might also depend on your workflow and priorities.
GitHub puts the emphasis on speed, encouraging a quick process to merge new branches with the main branch, which is always ready to be deployed. GitLab’s flow, on the other hand, prioritizes stability and security, with multi-step branches encouraging more testing and collaboration. In this sense, GitHub might appeal to smaller, more agile teams, whilst GitLab works better with a DevOps approach.
It’s a bit of a labyrinth to compare the variety of inclusions across both platforms’ price levels. Both offer three price points: Free, Premium and Ultimate on GitLab and Free, Team and Enterprise on GitHub. One major win for GitHub is that the free plan includes 2000 minutes of CI/CD per month, with GitLab only offering 400. However, one price-plan up and the table flips, with GitHub offering 3000 and GitLab offering 10,000 minutes. GitLab also offers 24/7 support on its second price plan, whereas GitHub customers will have to upgrade to Enterprise to get this.
It used to be a more clear win for GitLab on price points, as GitHub previously only offered unlimited open source repositories on its free plan, with private repositories included in Team and above. Microsoft leveled the playing field in 2019 by offering unlimited private repositories on its free plan (and they even threw in an official mobile app for GitHub on the go, a service which GitLab has yet to offer).
GitLab or GitHub?
Ultimately, despite the changes Microsoft may have brought in, the choice between the two platforms still comes down to your team’s goals, approach and preferences. If you are looking for a ready-made DevOps project management platform to go with your collaboration-based Git repository, then GitLab might be the service for you. If you want a more mix-and-match approach with plenty of choice for third party integrations, a huge community of experts and the million-dollar might of Microsoft behind it, GitHub might be a better fit.
And of course, when you’ve done your homework and settled on a platform, you can integrate either GitHub or Gitlab easily with Adadot, the fitness tracker for work.