Alyss has been working in tech since 2012, with diverse experience in Sales Engineering, Developer Advocacy, and Product Marketing with companies such as GitHub, Box, Atlassian, and BigCommerce.
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.
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.
Javascript Dev, who wants to build amazing things with the MERN stack.
I also have an interest in Data science and Machine-learning.
Getting better every day. Filled with wisdom from above!!
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.
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.
It's pronounced Diane. I do data architecture, operations, and backend development. In my spare time I maintain Massive.js, a data mapper for Node.js and PostgreSQL.
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.
Javascript Dev, who wants to build amazing things with the MERN stack.
I also have an interest in Data science and Machine-learning.
Getting better every day. Filled with wisdom from above!!
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
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)
It's pronounced Diane. I do data architecture, operations, and backend development. In my spare time I maintain Massive.js, a data mapper for Node.js and PostgreSQL.
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.
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.
Javascript Dev, who wants to build amazing things with the MERN stack.
I also have an interest in Data science and Machine-learning.
Getting better every day. Filled with wisdom from above!!
30+ years of tech, retired from an identity intelligence company, now part-time with an insurance broker.
Dev community mod - mostly light gardening & weeding out spam :)
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).
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
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.
Top comments (31)
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:
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.
@Alyss gitlab has also free private repos.
Unlimited private repos
forup to 5 users
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.
Well said
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.
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.
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.
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
Damn I didn't know that
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)
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.
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.
Haven't really used that yet , but I hope I do get the opportuinity to try it out
I love GitLab because it offers unlimited private repos But I also use GitHub too
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).
I Use gitlab for almost everything, only github if my customers prefer.
Pros on gitlab:
$ git remote add git@gitlab.com:USER/repo.git && git push origin master
creates the repo as privat on gitlab (github dont have that)
Wow that's pretty cool trick ill use that and sadly github doesn't offers that
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
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
I love gitlab for same reason as it offers free unlimited repos and I didn't knew about wiki thing thanks for teaching that
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.