DEV Community

Muhammad
Muhammad

Posted on

GitLab Vs Github why would chose one over other

Top comments (31)

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.