Within the world of software development, especially when it comes to the process of Software Development Lifecycle (SDLC), version control repositories are a pretty big deal, standing as vital aspects of successfully developing software, either individually or collaboratively. In the absence of these services, it would be extremely tough and laborious to manage changes to open-source projects while also having to ascertain that efficiency is maintained as development continues.
In an effort towards looking for the best code management service for open-source projects, developers usually compare between the two most popular platforms: GitHub vs. GitLab. Positioning themselves as handy assistants for developers, particularly when working in large teams, both GitHub and GitLab have taken a major leap over the recent years. Given that, whether GitHub or GitLab is the better choice, or whether the latter comer GitLab is likely to defeat the Microsoft “child” in terms of popularity, remains unanswered questions.
Let’s read on to grasp the ins and outs of these two strongest players as well as the key differences between them for developers to consider.
GitLab vs GitHub: Go-To DevOps Tools of 2020
Git as a Version Control System
Before delving into the argument of GitLab vs GitHub, it’s more than essential to clearly define “Git”. Firstly and obviously, Git is a version control system – but not only that, it stands as the de-facto standard solution and most commonly used version control system for the time being.
Developed in 2005 by Linus Torvalds – the creator of Linux – and originally designed as a low-level version control system engine, Git is now a full-fledged repository that is mature, open-source, and free. When it comes to its working mechanism, every time a developer saves a newly-created piece of code, Git creates a commit, which represents a snapshot of all the files at a specific point in time during development. These commits form links to other commits so as to establish a visual path of development history. With the aid of Git, each developer is enabled to save changes to their local code repository (branches) which is later merged into the team’s main or master branch. One of the greatest things about Git is that you can revert back to previous versions to make changes as needed.
Since this version control system has grown to be so big in the SDLC scene, there exists a staggering number of 3rd party software platforms and services integrating seamlessly with it. And given the fact that Git can effortlessly and smoothly integrate with the majority of software development tools, it is far easier and more appealing for developers to leverage this tool.
Once you have had basic understandings as to Git, then let’s move on to the most popular Git-based platforms – GitLab vs GitHub.
GitHub as a Market Leader
Launched in 2008 and founded by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett, GitHub is a global leader within the world of Git-based repository hosting platforms, which reaches 40 million users by January 2020. Such a huge number of GitHub adopters makes it the largest source code all over the world. Notably, by the year 2017, more than 100 million repositories have been created on GitHub.
With around 12 years of transforming how people code, GitHub undoubtedly achieved incredible growth and success by identifying a major problem that millions of people all over the world were wrestling with – how to collaborate on code – as well as devising an elegant solution that developers desperately needed. By building a SaaS service around Git, an open-source project, GitHub has been able to deliver value to and monetize that open-source ecosystem. This is also what made GitHub such an attractive acquisition for Microsoft in early June 2018, despite Microsoft’s troubled history in the open-source community.
As the story of GitHub – as a respectable billion-dollar unicorn staying behind the tech behemoth of Microsoft – must be frequently heard, let’s transition and dive deeper into the growth trajectory of Git’s other descendant: GitLab.
GitLab as a Strong Contender
GitLab started as an open-source project when its CTO Dmitriy Zaporozhets was in need of a great tool to collaborate with his team. As he wished something efficient and enjoyable – more than the tools – to focus on his work, Dmitriy created GitLab from his house in Ukraine. Ridiculously, it was a house without running water but Dmitriy perceived not having a great collaboration tool as a bigger problem than his daily trip to the communal well. So together with Valery Sizov, he invested efforts into establishing GitLab as a solution for this. This commit was the very start of GitLab in October 2011. The GitLab name was inspired by GitWeb and other git products.
By 2012, CEO Sid Sijbrandij saw GitLab for the first time and thought it was natural that a collaboration tool for programmers was an open-source for everyone to contribute to it. Being a Ruby programmer, Sid checked out the source code and was impressed with the code quality of GitLab after more than 300 contributions in the first year. He asked Hacker News whether they were interested in adopting GitLab.com and hundreds of people signed up for the beta.
Until 2013, Sid did receive requests from large-scale corporations that run GitLab to add features that they needed. In the meanwhile, Dmitriy tweeted out to the world that “I want to work on GitLab full time”. As a result, Sid and Dmitriy arrived at the decision to team up and introduced GitLab Enterprise Edition that was equipped with features up to the demands of larger organizations.
GitLab was officially incorporated as a limited liability corporation in the year 2014, where the company also announced to release a new version every month on the 22nd, just as every year before and after. The first release of the year on January 22nd was GitLab 6.5 and the last release of the year on December 22nd was GitLab 7.6 was released.
Also during that pivotal year, GitLab submitted its application to Y Combinator. At the very start of 2015, almost the entire GitLab team flew over to Silicon Valley to participate in Y Combinator. “We became much more comfortable with a much faster pace, and it changed the way we thought about what we could achieve in a short timeframe. If we think something takes too long, we need to change our idea of what we can accomplish. There is always an opportunity to do something smaller and imperfect but that still makes a difference.” GitLab’s journey at Y Combinator proves to be a critical milestone for the company. As stated in the company site, “It was essential to the trajectory we’ve set. We never thought we could beat our competitors, but we had big ambitions and knew we had a great product and would continue to iterate and improve on that product, which we still do today.” GitLab’s graduation took place in March of 2015, where there were only 9 people on their team.
In 2016, the number of contributors at GitLab grew to staggeringly more than 1,000 whilst over 100,000 organizations as well as millions of users are adopting GitLab. Their team’s scale also expanded, growing with 100 people to more than 140. Besides, in September, they did announce their master plan and successfully raise $20M in their B round of financing.
One year afterward, GitLab was awarded the DevOps Dozen award for Best DevOps Solution Provider by industry leaders MediaOps and DevOps.com that clearly presented that: “GitLab has really separated itself from the pack, from the breadth of its vision for an end-to-end solution to the many different ways that GitLab operates as a company. But it is not just that GitLab is different; GitLab has captured a broad swath of the market who feel bought into the company.” Early in 2019, GitLab also received a 451 Firestarter award from leading technology research and advisory firm 451 Research, recognizing exceptional innovation within the information technology industry. “Innovative approaches from companies such as GitLab — with its open-source software technology and community contributions as well as transparency with customers — merit the recognition of a 451 Firestarter award.”
Notably, based on the JVM Ecosystem Report 2020 data, GitLab is on the way to outperform GitHub in source code management. In this annual JVM ecosystem report, 1 in 3 developers uses GitLab, making it the most popular SCM tool among Java (Java Virtual Machine, or JVM) developers. As Snyk reports, “It is possibly surprising for people to hear that GitLab is the winner of this battle… On top of that, GitLab offers a lot more than just a repository, including CI.”
Another noteworthy point of this blossoming company is the fact that GitLab does adapt – and adapt very successfully – the all-remote work practices. With over 1,200 team members in more than 65 nations, GitLab is considered to be the world’s largest all-remote company. Actually, every single team member is remote, with no central headquarters and no company-owned offices anywhere in the world. Such an innovative work practice has partly fostered its 50x growth in 4 years, allowing GitLab to reach the $100M in Annual Recurring Revenue in 2020. This milestone brings the company one step closer toward their aspiration of reaching $1B in a 4-year duration. GitLab is currently valued at $2.75 billion and has raised $426M to date.
GitLab vs GitHub: Key Similarities & Differences Revealed
Before delving into their differences to figure out the better choice for your business, let’s cast a glimpse over some primary areas where Gitlab vs GitHub share common ground.
- Issue tracking: These two platforms offer fantastic issue tracking capabilities that enable status changes as well as the ability to assign owners to each issue. Moreover, bug reports can be sent instantly to both GitLab and GitHub.
- Integrations: GitLab and GitHub share a wide array of 3rd party integrations available to strengthen workflows and boost productivity. Whereas GitHub “boasts” a marketplace of 3rd party integrations for specialized tools and applications, GitLab provides a plethora of integrations for development and DevOps teams.
- Enterprise solutions: Enterprise-level capabilities for development teams and organizations are equipped on both GitLab and GitHub. Whilst GitLab is better positioned in the enterprise environment, both two solutions fare well in enterprise settings.
- Support community: Given the fact that GitHub’s support community may be slightly bigger (due to its expansion scale), both version control systems offer a strong community of developers who contribute to the update and upkeep of GitLab and GitHub.
- Wiki-based project documentation: Both GitLab and GitHub keep a separate system for documentation – that is called Wiki and is built right into each project as a separate Git repository.
- Labels: Two platforms provide easy inclusion of labels as a simple method of categorizing issues, merge requests, or epics based on descriptive titles such as “bug” or “documentation” which prove to be truly helpful for tracking.
- Merge approvals: Both two git-based platforms enable developers to ensure merge requests are approved by one or more people. These approvals allow the development team to pre-define the list of approvers for every merge request in a project to improve coding quality.
- Revert commits: GitHub and GitLab are capable of reverting commits or a single merge request via each platform’s UI.
- Description templates: A description template to issues or merge requests is allowed in both GitLab and GitHub, in which developers can instantly and effortlessly select a template for effective communication.
- Edits: Both GitLab and GitHub platforms allow upstream maintainers to collaborate on a source branch and edit into a fork; thereby, maintainers are empowered to perform small fixes or rebase branches before merging, which reduces iterations of community contributions.
- Other features in common: Pull request, Fork/clone repositories, Code review, Code snippets, Advanced permission management, Markdown support
Although GitLab and GitHub share a handful of similarities, there remain many differences which are worth noting and considering:
|Development Platform||There presents a development platform employed to store projects, which was equipped with various handy features such as task management, bug tracking, etc.||GitLab offers web-based DevOps internal management of repositories.|
|Integration||There is no built-in continuous integration in GitHub. Instead, it is provided by third-party vendors (Travis CI, CircleCI, etc.).||GitLab offers 100% built-in integration, in which they favor their own integration tools with continuous developments.|
|Authentication||Authenticating who can and cannot use the repository can be set in accordance with their role.||Typically, developers are granted the authority to decide whether someone should access a repository or not.|
|Documentation||GitHub documents are organized in a series of various guides, with each guide covering a specific platform.||GitLab documents are similar to documentation for a language with a search bar, listing all the documents required for the installer.|
Who are using these two platforms?
|Companies use GitHub||Companies use GitLab|
|– Goldman Sachs|
– Ask Media Group
Gitlab Vs Github: Which One to Choose?
Whilst GitLab vs GitHub are closely related with slight variations, the major differences lie in their philosophy. GitHub does emphasize on high availability and performance of its infrastructure and delegates other sophisticated functionalities to third-party tools; while GitLab, on the other hand, focuses on covering all features on one well-tried and well-integrated platform, offering almost every single thing for the complete DevOps lifecycle under a single roof.
When it comes to popularity, GitHub definitely beats GitLab pants down. Yet, whereas GitLab obtains a fewer number of developers pushing open-source codes to the platform, the recent GitHub acquisition gave it some upsurge. What should also be noted in terms of pricing is that GitHub is more expensive, which somehow makes it unaffordable for users working on a shoestring budget.
Seeing that the choice between GitHub and GitLab for open-source projects may be tough, with a bit of underground digging, you can drive a good decision.
Let’s take an example. Should you be working with a large open-source project which requires collaboration with several developers, GitHub turns out to be your seamless fit. Indeed, you will find yourself easily to have a big and vibrant community on GitHub that can assist you in completing your project.
On the contrary, if you are working on a project where cost is an important consideration, and high performance is not very emphasized, then going for GitLab can do wonders for you, especially when it comes to cutting down costs.
Taking another perspective, should you be in search of a platform that is truly open source, then GitLab is likely to be a better choice for your project. Besides, take into account some key questions such as: Do you prefer adopting third-party tools for Continuous Integration (CI) and Continuous Delivery (CD) in your open-source projects? Or, do you embrace built-in tools that will not require separate installing?
Should you prefer leveraging pre-integrated tools for CI and CD purposes, then GitLab can serve you better; otherwise, GitHub will be the right choice.
The Bottom Line
Within today’s ever-evolving competitive landscape of software development, repository management services – typically GitLab and GitHub – have become more than vital to the success of software projects, especially when it comes to the challenge of managing changes within the software development lifecycle and fostering a collaborative environment among various developers. Whilst GitHub remains a market leader with a well-established and solid foundation, the industry has noticed the rapid growth in the popularity of GitLab among developers. Beyond any doubt, GitLab is considered a winner for users who wish for a seamless Continuous Integration/Delivery experience; yet, it doesn’t come without some associated pitfalls – typically, resource utilization.