GitLab vs. GitHub — The Ultimate Face-off

Jamie Slome
8 min readAug 25, 2020

I have always likened the face-off of GitLab and GitHub to the rivalry of our famously caped heroes, Batman and Superman. One might argue that Superman can win any fight with his record of beating villains and other superheroes, alike. Although, another well equipped comic book fan might argue that Batman is unbeatable given “enough preparation time”. I am sure with a comfy chair and a warm brew in hand, this argument could go on indefinitely. Although our masked vigilante friends deserve the debate, it is time to pit the ultimate Titans against each other — GitLab vs. GitHub.

For any readers unfamiliar with git, please read here.

I recently came across an open-source community member sharing their comparison of GitLab and GitHub. After spending some time digging into what motivated their blog article, I discovered a hidden lair.

GitLab is currently rewarding the DevOps and open-source community for giving feedback and comparing the two platforms side-by-side. How could I turn down this offer — especially with merchandise to be won? GitLab has rallied the community with their #GitChallenge and wants to know how GitLab vs. GitHub fairs in open battle.

So, I invite you to sit back, learn about my experience with GitLab and GitHub, and finally unveil the true winner of this ultimate face-off.

GitLab — User Experience

For any fresh-faced readers, GitLab is:

“a web-based DevOps lifecycle tool that provides a Git-repository manager providing wiki, issue-tracking and continuous integration/continuous deployment pipeline features, using an open-source license, developed by GitLab Inc.” — Wikipedia

In a nutshell, GitLab helps software development and DevOps teams do what they do best — build software and deliver it.

I first used GitLab when I started as a cybersecurity software engineer at a major telecommunications company in the UK. It was also the first code management system we used at 418sec before moving onto GitHub. Prior to this, I had experienced git fundamentals at university, where I collaborated with other students on coursework. From this, I had built up a working proficiency in the git eco-system including the various CLI tools and workflows that help build an efficient software development team. As it happens, I started off with Bitbucket, but we won’t let the Atlassian stack wade into this battle today.

At first glances, GitLab was proving itself to be a respectable code management and version control system. It had all of the attractive features you would expect from a platform that helps engineering teams develop and collaborate together. GitLab continued on nicely with the fundamentals of version control that I was familiar with and synergised this with their various services, including the CI/CD pipeline, that became of significant value to me and my team. But before I let myself drag on with an odyssey of likes and dislikes, I will try to keep my opinions terse.

You may have realised in the title of this section that I mentioned “user experience”.

User experience is:

“a person’s emotions and attitudes about using a particular product, system or service.” — Wikipedia

For me, GitLab is the most positive user experience I have had in developer communication. From project segregation to Kanban boards, all the way to automatic merge requests, the user interface felt like the Nirvana of what git, when visualised, would look like. The Kanban board serves as a central overview of the development team, like many other code management services, but GitLab goes above and beyond in the ways it integrates with pull requests, issues and other functionalities like CI/CD. Furthermore, the multi-faceted referencing system makes linking up merge requests and issues extremely easy — a simple yet valuable function. These features when combined, make tricky and abstract conversations around software development more measurable and trackable. It feels like a solid starter for managing a software development project with clear and granular permission controls as well as the obvious free access to private repositories.

GitLab also provides a bigger bite of deployment features and analytics tools that you can use right off the bat without purchasing a subscription. This is certainly helpful when you are upskilling in code collaboration and Agile development — although not too much of a technical deep dive that it is overwhelming. Moreover, it is the well equipped and expert DevOps teams’ swiss-army knife. The ability of GitLab to tailor to various audiences in a seamless way is impressive.

For me, the missing tool in the box is the active community on the platform. It certainly does feel like a siloed environment with a minimal open source community defending it — yet I don’t believe this is what GitLab is focusing on necessarily. Just a thought.

Nonetheless, GitLab — U.I doing a smashing job!

GitHub — Community

If you aren’t familiar with GitHub, you might have heard about their popular acquisition by Microsoft, or perhaps some of their annual conferences including GitHub Universe and GitHub Satellite. GitHub, whilst similar to GitLab, is a:

“…distributed version control and source code management (SCM) functionality of Git, plus its own features. It provides access control and several collaboration features such as bug tracking, feature requests, task management, and wikis for every project.” — Wikipedia

At face value — very similar, right? Read on and find out…

Photo by Richy Great on Unsplash

I first encountered GitHub at university during my second year. We had a Community Evangelist come into our operating systems lecture, locked and loaded with merchandise including the famous Octocat stickers and GitHub themed comics. It is a well known fact, that to grab the attention of any Computer Science lecture hall, freebies and merchandise have to be involved; unless the lecture is on automata or logic (written with slight sarcasm).

I am not usually the type of person to buy into a brand or company, but when it came to GitHub, I knew I liked what I saw — even though I hadn’t actually used the platform. Rest assured, I will strive to prevent my love of the brand from having too much sway in this battle.

Like my previous section, I have identified the most important pillar of my appreciation for GitHub — community.

Community is:

“…the condition of sharing or having certain attitudes and interests in common.” — Oxford Languages

GitHub now has 40M+ users on their platform — as announced at GitHub Universe by company CEO, Nat Friedman, last year. This is a staggering number of users and it doesn’t take a long thought to understand why GitHub is considered as the home of open-source software.

GitHub like the other Git-management systems provides the fundamental and expected toolkit for code storage, version control and software development. This is the platform we use at 418sec as our mission is to help secure open-source packages suffering from security vulnerabilities. So, what better place to do it than where most of the open-source code sits, with a behemoth community behind it from various security and engineering fields. Yet, on a more personal level, I feel proud and achieved when I contribute to a public repository on GitHub or show off my own repositories. GitHub feels more like a forum for development whereas other providers feel more siloed and contained within an internal team. It succeeds in being somewhat of a social network for software engineers and like-minded technical creators. You can meet, collaborate and learn from a plethora of developers and easily reuse functionality that will help you in your journey in becoming a Git expert.

Beyond the community, I am impressed by the level of documentation around the GitHub Octokit, REST API and GraphQL API. This has helped me extend my creations on the platform to other services. However, the quality of the documentation is expected to be this refined with such a significant number of users reading and suggesting improvements every day. Prior to GitHub’s recent announcement, which made private repositories free for all users, GitHub was missing some key fundamentals in the subscription tiers — yet they have now made the cut and pulled themselves up to an expected position against competitors.

One point of concern I had when joining GitHub was that the user interface and experience were not as intuitive and usable as other providers. It took lots of time and some clunky learning to get used to interacting with issues, pull requests and project boards — especially the lack of integration between the three in contrast to competitor offerings. Furthermore, GitHub certainly does not have as many of the refined bells and whistles as GitLab in CI/CD and DevOps experience, nor the maturity for it yet. But, I believe the product roadmap and experience that they are focusing on is different from the all encapsulating tool for DevOps and engineering teams, like GitLab.

Nonetheless, GitHub — in the words of Helen Keller, American author and political activist:

“Alone, we can do so little; together, we can do so much.” — Helen Keller

Crowning the champion

It is time to reveal which of the Titans has survived this ultimate battle and shown themselves victorious. But before this, let’s refresh our minds.

To recap:

GitLab — is the all-singing, all-dancing, swiss-army knife for software engineering and DevOps teams looking to grow and mature their build and release cycles. It holds its own weight when supporting junior engineers as well as the advanced and more experienced DevOps lead. Yet, it lacks in community and can feel like you are left in the dark when wanting to collaborate with others outside of your internal circle.

GitHub — this is where the open-source community is. Whilst supporting the fundamental git functions and team management features, the real value of this platform is the family and network sitting around it. However, it can be intimidating for first-time users to contribute to open-source software on GitHub and may result in static innovation, without new and fresh minds getting involved.

So, without further ado, the ultimate champion of GitLab vs. GitHub is:

GitHub 🎉

Learning from others is everything to me. I see this platform as a store of knowledge and bringer of continuous innovation for all, forever. You could say this was an unfair fight as day-to-day I operate on GitHub, communicating with package maintainers on security vulnerabilities and discussing potential solutions with our users for a multitude of exploits in thousands of repositories. Bar this significant upper hand, I feel more aligned with the mission of GitHub and see a greater set of avenues for exploration in the community.

GitLab 🥈

That said, GitLab is the backbone of deployment and agile software development for countless of mature digital companies around the world. They clearly lead the way in building and supporting software engineering teams that want to deploy efficiently and confidently. If my daily operations focused more so on these activities and less so on open source collaboration, I think we may find that GitLab is at the top of this section…

To conclude, I hope that in reading this article you have either taken away a lesson or added more/new brownie points to one of our heroes — GitLab or GitHub. It would be ill-advised to not admit that both platforms have ginormous potential and I look forward to seeing how they both grow and innovate in the near future.

Good luck GitLab & GitHub!

--

--

Jamie Slome

Operations Lead, Open Source Program Office @ Citi.com | Co-founder @ huntr.dev (acquired by ProtectAI)