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 will compare the two and see if Microsoft has given GitHub the edge.
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 separate branches, with all changes being merged together – perfect for a DevOps approach.
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 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?
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.
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 setup 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.
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.
A 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, 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 is 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 clearer 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 that GitLab has yet to offer).
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 a service for you.
If you want a more mixed-and-match approach with plenty of options for third-party integrations, a huge community of experts, and the million-dollar might of Microsoft behind it, GitHub might be a better fit.
Also published here.