When comparing GitHub with GitLab, Bitbucket, or any other Git platform, there's one quintessential difference.
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.
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
up 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.
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.
Another big plus that I personally really like with Gitlab is the integrated CI/CD system.
Also, the docker registry is nice, even if I don't actively use it.
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.
I love GitLab because it offers unlimited private repos But I also use GitHub too
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 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 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
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 firstname.lastname@example.org: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 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)
I seriously prefer Bitbucket because of its better integration features and Mercurial. YMMV
I use bitbucket too
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
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
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.