DEV Community

GitLab Vs Github why would chose one over other

Muhammad on August 07, 2018

Collapse
 
preciselyalyss profile image
Alyss πŸ’œ

When comparing GitHub with GitLab, Bitbucket, or any other Git platform, there's one quintessential difference.

GitHub is a social platform.

With that frame of reference, asking if you should use GitHub or another-Git-platform is like asking if you should use Twitter or a diary. Both allow you to record your thoughts, but the interaction with others is fundamentally changed.

GitHub offers a product that is mindful of open-source needs and workflows. The product itself is well understood by the developer community because of its ubiquitous presence. In terms of users, GitHub claims 24 million developers working across 67 million repos. In 2016, Evans Data (largely regarded as one of the best developer marketing research firms) estimated 21 million developers worldwide. Realistically, that suggests GitHub users may have more than one account and non-developers may have accounts.

GitLab, on the other hand, is not a social platform nor is it just a Git platform. However, as GitLab has evolved, they have mimicked GitHub in their user experience and workflow. For anyone already familiar with GitHub, GitLab was easy to learn. GitLab has focused heavily on the DevOps toolchain in its entirety by offering what they call "Auto DevOps". With GitLab, you can get:

  • Continuous integration/continuous deployment
  • More extensive features for issue boards

For smaller teams, individual projects, and OSS, price can be a large (if not the most important factor). GitHub offers free public repos as does GitLab. Bitbucket has free private repos as well as build test minutes.

There's definitely even more I could dive into about why people might choose one or the other, but that gives a high level take on the differences.

Collapse
 
c33s profile image
Julian

@Alyss gitlab has also free private repos.

  • bitbucket offers free Unlimited private repos for up to 5 users
  • gitlab offers free unlimited private repos but has no maximal user limit. and 2000 free build minutes.

after the microsoft aquision i would go with gitlab (was going with gitlab already before).

one biiiig plus of gitlab is their transparency. if something goes wrong, they publish nearly every step of their recovery on a public place (status page, twitter and google docs). for me this is much more trustworthy than all the cover up other companies do.

Collapse
 
alara_joel profile image
Alara Oluwatoyin Joel

Well said

Collapse
 
sudiukil profile image
Quentin Sonrel

Since GitHub is the "default" choice for a lot of people, it might offer more visibility to your projects.

I think the big advantage of GitLab (and some others such as Gitea) is the possibility to self-host and have unlimited private repos, so unless you need those two things, GitHub should do the work just fine.

Collapse
 
antoine_m profile image
Antoine Mesnil

GitHub is great for showing public repos because of his popularity but I prefer to work with GitLab because of his features (better tools, CI/CD, private repos...). GitLab is really great at what it is doing.

I use both for different purposes.

Collapse
 
dmfay profile image
Dian Fay • Edited

A non-technical consideration: GitHub is being acquired by Microsoft, who count among their clients the US immigration agencies (ICE/CBP) which have lately been making headlines for separating families and caging+abusing children, above and beyond the ordinary cruelties of our immigration system. There's a petition circulating on GitHub with users pressuring MS to drop them. It's highly unlikely they'll unilaterally cancel the current contract, but I'm planning to move if they renew.

Collapse
 
alara_joel profile image
Alara Oluwatoyin Joel

24 million users, and I would leave because of 1?
What if my job insists that this would be their tool for collaboration, I can't give them this as a valid point (Even though it's quite sad what's happening). They are just another Github user

Collapse
 
mraza007 profile image
Muhammad

Damn I didn't know that

Collapse
 
stenpittet profile image
Sten

As someone that has extensively worked on Bitbucket I'm a bit sad to not see more mentions here 😒 Would people mind sharing what their opinion is of Bitbucket? (For context, I was the lead PM for Bitbucket Pipelines a couple years ago)

Collapse
 
dmfay profile image
Dian Fay

A previous company I worked for had all their stuff on Bitbucket (we also used JIRA, tried and quickly abandoned Bamboo, never used Pipelines). My immediate impression of it is that the decision to use Bitbucket is never made without input from someone who routinely wears a suit to work. Like other Atlassian offerings it's enterprise software through and through in that it centers the system rather than the user, with all the consequences you'd expect. There's a lot more effort involved in setting up and managing Bitbucket or especially JIRA than there is in user-centric tools like GitHub or Trello, for example. The effort can be worth it if you're a big enough organization but that's the kind of situation where you know whether you're in it.

Collapse
 
dhandspikerwade profile image
Devin Handspiker-Wade • Edited

Used to use Bitbucket fulltime both professionally and personally. Worked well and had some nice features. As the team got bigger, the price became a real factor and had a hard time selling it to the higher ups.

We tried to work with Pipelines as a replacement for Bamboo which we were completely underusing. We found the YAML wasn't being parsed as expected and the runners felt very flaky. Mixed with the limited minutes for the runners and the almost weekly outages compared to GitLab's very easy runner setup that any team can add a "personal" runner on top of the shared runners if they wanted to, it didn't make sense to keep using the Bitbucket for git repos just for the Jira integration.

Edit: I should note though, we were using the cloud Bitbucket but a self-hosted GitLab core edition. The price comparison isn't 100% fair.

Collapse
 
alara_joel profile image
Alara Oluwatoyin Joel

Haven't really used that yet , but I hope I do get the opportuinity to try it out

Collapse
 
mraza007 profile image
Muhammad

I love GitLab because it offers unlimited private repos But I also use GitHub too

Collapse
 
phlash profile image
Phil Ashby

Gitlab makes a nice one-stop-shop for small/medium projects where you are happy with their opinionated options that can deliver a complete delivery pipeline. I hope they are coping with the influx of ex-github customers who have chosen to migrate for political/commercial reasons following the Microsoft acquisition!

Github is an excellent open source / collaboration environment, which can be connected with a number of other tools (Travis, Jenkins, Helm, etc.) to form a complete delivery pipeline, it feels less opinionated than Gitlab, and works well with our corporate tooling.

In my corporate world, we use VSTS or Bitbucket as hosted private repos, mostly with Git backends (some TFS, SVN, CVS, VSS remains). We collaborate through Github (hoping to share SDK source with customers soon, right now there's a bit of Powershell and the beginnings of a cloud programming game we are creating in-house to learn about Cloud technologies).

Collapse
 
ramlev profile image
Hasse R. Hansen • Edited

I Use gitlab for almost everything, only github if my customers prefer.

Pros on gitlab:

  • Automatic creation when pushing to not existing repos.

$ git remote add git@gitlab.com:USER/repo.git && git push origin master

creates the repo as privat on gitlab (github dont have that)

  • Issue boards
  • User roles
  • unlimited public AND private repo's
  • not owned by Microsoft
Collapse
 
mraza007 profile image
Muhammad

Wow that's pretty cool trick ill use that and sadly github doesn't offers that

Collapse
 
aurelkurtula profile image
aurel kurtula

I use both!

I use, or began to use, github for the repos I want public. So that's when I create tutorials and I want the code to be accessible or if I ever get around to creating code for public use.

I use Gitlab as my default!

Everything I create immediately goes on gitlab.

The main advantage is the unlimited private repos, and the organisation feature is a plus. This is roughly what I mean by organisation.

So everything I create goes within any of those groups.

Since I started to dabble in programing I have changed about three different computers. The first one set me back in ways that still brings me to tears when I think about it. But the last time I didn't notice the change, if anything, starting afresh was welcomed. The point being, every project I was working on was already pushed to gitlab.

We do talk about when it's the perfect time to add commits and what are the best ways to comment. In git lab I don't care. All I care about is giving my projects good names and descriptions if need be then every now-and-then I just type

gitit update

in the terminal and basically a push is made with the message update.

If you don't have a system in place or if you are a beginner, I highly recommend doing the same. Coupled with something like my wiki pages (or evernote), you can be sure to always know where you are at any point

Collapse
 
mraza007 profile image
Muhammad

I love gitlab for same reason as it offers free unlimited repos and I didn't knew about wiki thing thanks for teaching that

Collapse
 
alangdm profile image
Alan DΓ‘valos

For me there are 2 big differences in how they work:

1) Github gives you unlimited public repos while Gitlab gives you unlimited public AND private repos
2) Github gives you most of the QoL features for every repo, no matter if you're paying or not, Gitlab, after the changes they made this year, hides many of those features behind premium plans (like say, squash on merge and things like that)

In my opinion, if you don't want to pay, I'd go with Github for any full Open Source project mainly for the visibility and QoL features and Gitlab if you need to have a more than five-person team and private repos.

The premium options, well that's a whole nother story, you'd have to check some of the features and see what's best for you.

Collapse
 
itsasine profile image
ItsASine (Kayla)

I have both, and I use both, for different purposes. I also have the Developer paid GitHub account through GitHub student, but I won't up it after graduation.

For me as a hobby dev, GitLab having private repos for free is the biggest draw. They also integrate snippets in the main site, instead of Github having Gists off in their own little world.

For me as an engineer trying to look good, I like Github since it's the "default" community for coding. It provides visibility into what I can do and how I play nice with others :P Gitlab just doesn't foster that community feel the same way.

Gitlab bases its pricing and feel all around the CI experience, which is fun for dabbling into devops kind of stuff. They have really solid documentation around the whole slice of web development on their platform.

Github Pages is a nicer experience than Gitlab Pages for hosting (in my opinion). It's easy to set it and forget it, so spinning up a free static site just takes minutes on Github instead of having to tinker a bit for Gitlab. For my notes, I clicked one button and it turned my README into a website. Like, that's awesome!

The biggest thing that I like about hosting on Github, though, is that your domain name can be used across all your projects. My homepage is itsasine.xyz , my soon-to-be blog is at itsasine.xyz/blog , my notes are at itsasine.xyz/resources . For hobby work, I don't want to buy a name for every repo, or to have one bloated repo to keep everything under one name (which I have to do on Gitlab as of this writing). My "portfolio" site under my real name is on Gitlab Pages, but it's only one repo and I keep it private and unindexed, so that works for me.

Collapse
 
mraza007 profile image
Muhammad

Hahah What a coincidence I am using the same theme
muhammadraza.me

Collapse
 
lefebvre profile image
Paul Lefebvre

I use both and also BitBucket. Probably one reason to choose GitLab over GitHub is if you're offended by the Microsoft acquisition of GitHub. I'm not, so it's not a factor for me.

I primarily use GitHub for open-source stuff (here and here). It's free for that and it is the "go-to" place to find open-source projects.

I've been using BitBucket for my own private projects, either just personal or for clients. BitBucket is also free and they do provide the nice SourceTree Git client.

Lately I've started looking at GitLab and have put a few open-source projects on it (here) and I really like it's clean design and overall usability. I like that it is also free for private projects. I may start using this more instead of BitBucket.

Collapse
 
rapidnerd profile image
George

I have to switch between both of them, GitHub is my personal favourite out of the two, I'll use it for work and personal projects. However my university has an agreement with GitLab so we have to use that to submit our course work. I like the aspect of GitLab, but can find some of their interfaces are a little fiddly and takes a bit of time to get use to, especially that they allow private repos and organisation private repos for free straight away (with GitHub you have to pay)

Collapse
 
weswedding profile image
Weston Wedding

My personal stuff usually open source and goes Github in case it potentially helps someone out there. For the extremely small dev team at my job we rely on Bitbucket when possible because we usually need private repos and super small teams are free.

Collapse
 
deployplace profile image
Nazar Atamaniuk

At DeployPlace we use self-hosted GitLab, we have chosen GitLab as most of us are familiar with it. We are happy with all features GitLab provides, I can’t imagine our life without integrated GitLab CI. Another important feature for us is integrated code review tool, we use it every day, we use merge requests, code reviews, branching. To be honest, most of us have GitHub accounts as well, we like to contribute in open source, and we want to be a part of the tech community, but lack of solutions from GitHub in the area of CI doesn’t let us chose it for our projects.

We have an article here, where we described in details: GitLab vs GitHub in details

Collapse
 
mraza007 profile image
Muhammad

I use bitbucket too

Collapse
 
christianschoen profile image
Christian Schoenmakers

We're using the GitLab CE (self hosted) to have full control about repositories, users, teams, etc. Very happy with it!

Collapse
 
mraza007 profile image
Muhammad

Nice I see
The reason why I love gitlab is because they have unlimited private repos

Collapse
 
philfernandez profile image
Phil Fernandez

IMO the only thing that GitHub does better than GitLab is the social networking aspects of the site, which is a major pro. If I were to compare the two platforms only on the basis of tooling for source control, I personally like GitLab quite a bit more. It's nicer to work in. The markdown flavor in GitLab is way better than GitHub's, and it has built in CI/CD and other dev ops things that GitHub doesn't have built in. And, it's not owned by Microsoft.