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.
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.
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.
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)
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.
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.
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.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
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.
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.
Hahah What a coincidence I am using the same theme
muhammadraza.me
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.
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)
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.
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
I use bitbucket too
We're using the GitLab CE (self hosted) to have full control about repositories, users, teams, etc. Very happy with it!
Nice I see
The reason why I love gitlab is because they have unlimited private repos
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.