DEV Community

Cover image for GitHub vs GitLab
Hritwik Tripathi
Hritwik Tripathi

Posted on

GitHub vs GitLab

Before exploring GitHub and GitLab, let's clarify what Git is. During a Software Development Life Cycle(SDLC), the source code undergoes multiple changes. New versions of it are created by the development team every day. Just like with video games, in programming, every decision you make can be consequential.

If you make a bad decision, the entire course of the game may go in the wrong direction. How to avoid that? Instead of playing the game all over again, players usually revert to a saved checkpoint and start again from there.

Git is the tool that ensures those checkpoints are in place. During the development process, developers can roll back to the previous version of source code and make changes if needed. Additionally, Git makes it possible for developers to find code added by them or other developers at any point of SDLC.

Git

Thus, Git is a version-control system for tracking changes in the source code during an SDLC. It was initially designed by the Linux creator, Linus Torvalds, in 2005. Version control systems weren't a new concept. But since then Git took a major leap, becoming the preferred solution for many projects, both commercial and open-source. Today, it's an open-source, free tool.

Git can be initialized in a project to create a Git repository. After you install Git, you will see that a Git repository is a folder inside a project that contains a history of changes made to files in a project over time.

GitHub

Let's start with the basics. GitHub is a Git-based repository hosting platform with 50 million users (July 2020). Originally, GitHub launched in 2008 and was founded by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett.

Alt Text

GitLab

Similar to GitHub, GitLab is a repository manager which lets teams collaborate on code. Written in Ruby and Go, GitLab offers some similar features for issue tracking and project management as GitHub.
Founded by Dmitriy Zaporozhets and Valery Sizov in 2011, According to their website, GitLab is used by more than 1,00,000 organisations today which include enterprises such as IBM, Sony,EA,Goldman Sachs and NASA.

Alt Text

GitLab vs GitHub-

Private Repositories

GitLab used to provide free private repositories for unlimited users to collaborate and now GitHub has joined the party by doing the same but the difference lies in the amount of storage provided by both platforms. GitHub provides 500 Mb whereas GitLab provides 10Gb for the repository space,So this round goes to GitLab by a small margin.

CI/CD framework

The great feature of GitLab was its inbuilt CI/CD system,which now is getting a run for its money as GitHub recently announced GitHub Actions which is GitHub's own CI/CD system.
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.
But what's cool about GitHub's new CI/CD tool is its new features called "matrix builds." It allows you to run multiple versions of your applications in parallel.Pretty cool right?
So we have a tie in this round.

DevOps Cycle

Alt Text

The above mentioned image will give you an overview of the features that both the platforms give in DevOps cycle.
GitLab is ahead of GitHub in many aspects here,it has been the same for many years in the DevOps arena.In the past people moved from GitHub to GitLab due to this feature alone.So this round clearly goes to GitLab.

Import/Export

When it comes to importing data we have a weird sense of tie.On GitLab we have an extensive amount of documentation which makes the work a lot easier but on the other hand GitHub compensates the lack of documentation with an awesome tool to import our work.
The only area where GitLab shines here is exporting as Git hub has lack of documentation ,So you might have a hard time exporting your files whereas GitLab has good documentation for importing and exporting.
So this round goes to GitLab.

Community

This is a great area for GitHub to shine as GitHub is the home for 50 million people on our planet whereas GitLab is nowhere near to this number.With great events and a better developer interaction GitHub takes the spot for #1 for community engagement.So, this round goes to GitHub.

User Interface

A great distinguishing factor for a user is the user interface. GitHub crushes GitLab in this area with its stunning user interface which comprises of a better and more intuitive workspace.This makes a new user to come at ease while working on GitHub.
So this round goes to GitHub.

Hosting on your own server

Alt Text
When i talk about hosting repositories on my own server i can surely say that GitHub does not offer any such feature whereas GitLab does provide us with an option to choose the hosting service.This gives GitLab another point over GitHub.

GitHub Pricing vs GitLab Pricing

Well pricing is something that i cannot comment on as the pricing is a decision which will be dependent on the situation and the organisation/team.But i will provide the difference by images shown below.We do not have a specific winner for this round.

GitLab :-

Alt Text

GitHub :-

Alt Text

Web IDE

GitLab provides us with a web IDE to support the coding directly from the browser and not getting dependant on an external software.This might not be deal breaker for people but it is good to have various features for free. GitHub does not provide any IDE for coding inbuilt inside the platform.With GitHub desktop they might be going towards this feature but time will only tell if we ever get to see an IDE inside GitHub.So this round is won by GitLab.

New Features and Updates

With new features rolling every 22nd day of a month we can surely say that GitLab promises for new updates and innovation really fast.Whereas this is all great but there is a dark side to all of this glitter as many a times the new coming feature is not in 100 percent working condition, so you have to take this point with a grain of salt.So this point is a personal preference.

Authentication levels

GitLab provides with different authentication levels to users working on a repositories ,so we have distinction of people which are working on a project. GitLab tries to make the work a little more decentralised with different permissions for different group of users .I like the sound of that but personally i like the GitHub's normal ownership feature by person making the repository.Again this point is also dependant to personal opinion but if i have to mark a platform for features i will surely give GitLab another point.

SLIGHT FEATURES ->

This section is specially designated to throw some light on some minute features which we have exclusively on GitLab. These features are not necessarily a deal breaker but a good feature should be appreciated in any small way possible.We would not mark both platforms on these features.So let us begin the countdown-
Alt Text

Milestones and due dates

GitLab provides us with a feature to have due dates or deadlines on a specific issue.This makes the workflow punctual and time bound.Milestones is another way to tell users what all things are to be expected in future of the development cycle.

Weight on issues

We can have different weights added to issues which helps us identify the severity of a specific issue.This is somewhat equal to adding labels with severity of issues on GitHub.

Monitoring Performance

A great tool for teams and owner of teams is monitoring data that is provided by GitLab. This helps to work on specific aspects of teamwork.This small feature comes handy when we have a large organisation working on a repository,where small problems result in massive workflow losses.

Oh! now is the time for our winner

With all these features both of our platforms are a true beauty to behold in software development industry.These two platform help a great number of developers and tech enthusiast write and store beautiful code on their repositories around the globe.With the score that we are keeping we have our winner as GitLab!(with 7 points) whereas GitHub had(3 points).But these markings are not an ultimatum.Obviously at the end of the day people have their own preferences which would lead for them to use any of the given software platform mentioned.

Top comments (10)

Collapse
 
karandpr profile image
Karan Gandhi

Nice comparison.
I usually use Gitlab or Bitbucket for my work needs.
Github is too distracting these days and by the looks of it , MS is trying to make it social network for programmers.

Collapse
 
3scava1i3r profile image
Hritwik Tripathi

I was wondering the exact same thing!

Collapse
 
m4r4v profile image
m4r4v

I didn't knew much about gitlab but now I have a better idea about it.
I will definitely give it a shot
Thanks for this article, it was really good

Collapse
 
3scava1i3r profile image
Hritwik Tripathi

Happy to help🍻

Collapse
 
zilti_500 profile image
Daniel Ziltener

Thank you for this nice article! I am mostly self-hosted using Gitea these days, but especially for our work projects we use GitLab. I like having issue boards built in so I can have a Kanban board without using an external tool!

We also just upgraded from free to GitLab Gold so we have all that premium stuff, so I'll see how these are.

Collapse
 
jw1dev profile image
Jacky Wong

Great article there!
I think GitHub is more personal-oriented, since it presented Codespaces to the community this year (2021 Aug.), I think GitLab is losing more of its edge in terms of personal use as long as it doesn't have anything competitive like [VScode inside the browser].

Collapse
 
ssinad profile image
Sina D

I think user experience is also a personal preference.

Collapse
 
crse profile image
Christian Elbrianno

I personally stick with Github, as I mainly use git for open source projects. It's easier to have a total beginner to learn git from Github, compared to Gitlab.

Anyway, great writings!

Collapse
 
3scava1i3r profile image
Hritwik Tripathi

Thank you! 🙃

Collapse
 
sayush2903 profile image
Ayush Shrivastava

Wow! what an awesome blog giving really nice insights and difference between github and gitlab.
PS: Just as a heads up, how did you get gitLab t-shirt,?