DEV Community

Cover image for Gitlab VS Github VS BitBucket. Which one deserve your time ? βŒšοΈπŸ‘€
Younes
Younes

Posted on • Edited on • Originally published at blog.yafkari.dev

Gitlab VS Github VS BitBucket. Which one deserve your time ? βŒšοΈπŸ‘€

🎊 Happy New Year ! πŸŽŠπŸŽ‰ (I know I'm late πŸ˜‚)

Here is it ! My first article of 2020, I hope this year we'll have as much fun as we had last year. And I hope it will be a year fulfilled with success and happiness for you! πŸ˜„


Funny fact. During my research, I found a comparaison of Gitlab and Github by Gitlab itself ! It made me laugh πŸ˜‚. Honestly, I did'nt read it, but you can find it here.

Summary

Introduction

Nowadays, nobody, uses git alone. Every developer, at some point used one of the three major hosting platforms, if not all three.
The most famous of the three is Github, even if I first used Bitbucket to download Minecraft plugins when I was younger πŸ˜‚.

So, first of all, I will describe each of the three platform, and tell we will try to comparate them and maybe make a thoughtful decision.

/* My sources for the history of each are highly inspired by Wikipedia, if you want to know the details, you can check the wikipedia of Github, Gitlab, or BitBucket.*/

Google Trends

First, let's see the interest of each platform on Google Trends during the last five years :

Trends

We can clearly see that people do a lot more research for Github on Google, it's the most popular platform, it's not surprising.

Now let's detail each of the platforms to be able to compare them correctly.

Presentation of each platform

1. Github

Github image

A little bit of history :

  • The company Github, Inc. was founded in 2007 in San Fransisco. Github has been developed with Ruby On Rails by Scott Chacon, P. J. Hyett, Tom Preston-Werner and Chris Wanstrath.

  • On June 2011, ReadWriteWeb, now called ReadWrite (a Web Technology blog) announced that Github had surpassed Google Code and SourceForge in total number of commits during January to May 2011.

  • In 2016, Forbes was ranking Github at the 14th place in the Forbes Cloud 100 list

  • On February 2018, Github was victim of the second biggest DDoS (peack of incoming traffic of 1.35 terabits per sec, only 🀯!)

  • On June 2018, Microsoft announced that they had an agreement with Github to acquire the company for $7.5 billion ! You probably saw that the purchase was done on 26 october of 2018.

  • Two weeks later, the Github Education was offering free education bundles to all the schools.

Numbers

Github has more than 40 million users, including 10 million who joined the platform in 2019. Github represents more than 44 million repositories created last year. And it's more than 20 million issues closed last year. Source.

Some Facts

First of all, it's important to note that since the acquisition of Github by Microsoft many people have moved away from Github to other platforms and most likely Gitlab or Bitbucket. The reasons are obvious, even you reading this, you probably wondered about it, didn't you?

Microsoft had surely foreseen the situation and for some time now we see Microsoft investing more and more in open source. We can mention the famous Visual Studio Code or .NET Core which became open source, ...

Let's get back to Github.

Pros

  • Microsoft is developing Github and adding more and more features in it. You can now have a private repository for free, ...

  • You have now a sort of Kanban board for your projects.

  • You can create private and public repositories for free.

  • They offers you a pack of services for free if you are a Student.

  • A lot of Integration possibilities. (Heroku, Google Cloud, Zendesk, ...)

  • Github pages.

  • Security notifications.

  • Dependency analysis.

Cons

  • Microsoft's control over the product.

  • Only support Git.

  • The Cyber security attack they faced in 2018 is scary.

  • They should rename Pull Request, by Merge request πŸ˜‡.

2. Gitlab

Gitlab image

Some bytes of History :

  • At the beginning, it was called Gitlab and it was completely free and opensource under the MIT license (I didn't know that we can change the licenses wow).

  • In July 2013, they decided to split the product in two different version (Gitlab CE: Community Edition && Gitlab EE: Entreprise Edition) but at that time, they were both free and on the MIT license. (We all know now that that's not the case anymore ^^)

  • In 2014, Gitlab announced that the EE version was now on a restricted license while the CE version will still be maintained and will remain free.

  • In March 2015, GitLab bought Gitorious (a Git hosting service competitor with ~820k registered users). They encouraged users to migrate to their platform and Gitorious was stopped in June 2015.

Prepare yourself this one is funny πŸ˜‚πŸ˜©.

  • In 2017, after a cyber attack, a database admin deleted the production database ! Six hours of issues and merge requests lost ! The recovery process was completely streamed on Youtube (A way to recover the costs of the recovery ? πŸ˜‚)

  • In August 2018, Gitlab moved from Microsoft Azure to the Google Cloud Platform which caused the service to be unavailable to several countries due to
    restrictions by the Office of Foreign Assets Control of the United States. (Iran, Syria, North Korea, ...)

Numbers

No information ?

Pros

  • A big advantage of Gitlab is that you can self host a Gitlab server. I already tested it once. Personally, I liked it.

  • CSV file export. You can export issues in CSV files to default notification email addresses as attachments.

  • Confidential issues. Gitlab allows you to create confidential issues that are visible only to the project member(s) with the Reporter role or above.

  • You can also visualize your branches with a graph, which is useful sometimes.

  • Gitlab is open source, so if something bothers you and you know Ruby, you can change it as long as you don't break it πŸ˜‚.

Cons

  • You don't have that much features for free.

  • The "premium" offers are expensive.

  • Very small community compared to Github.

  • A lot of hidden functionalities in menus and submenus. (Complex UI)

3. BitBucket

Bitbucket image

No joke, sorry πŸ˜‚ (History) :

  • Bitbucket was at the beginning an independent startup founded by Jesper NΓΈhr. (I didn't find the date)

  • Atlassian acquired it on September 2010. At the beginning, it was only hosting support for Mercurial projects.

  • In October 2011, Bitbucket announced the support of Git project hosting.

  • In August 2019, Bitbucket showed their plan to stop supporting Mercurial repositories in 1 June 2020. And Stop supporting Mercurial means deleting all traces of Mercurial in their API and deleting permanently all the Mercurial repositories (Public & Private).

You should check if you have something left out there. Stop reading and go check if you have something to get back. Don't be that sad database admin guy πŸ˜‚πŸ˜­ But come back after doing that πŸ˜‡

(ed. I would just make a quick pause. I just have been saved by an AMAZING feature called an Alert Box πŸ˜‚ (Love you @thepracticaldev 😘)

Here is my hero: (Yes, I'm using Brave)
my hero

Numbers

Bitbucket claimed to have 10 million of users in a blog the April 17, 2019. The article say that they have ~28 million of repositories.

You can find the article here.

It's interesting to see the availability of public numbers from Github and the lack of information from Gitlab and Bitbucket.

Pros

  • One huge advantage of Bitbucket, is its integration with all the Atlassian services like JIRA, Confluence, Trello, ...

  • Bitbucket's search algorithm includes several languages, which makes it possible to classify the results. The definition of a function or variable appears at the top, then the uses. You can determine the utility of a keyword very quickly.

  • You have access to all the extensions available on the Atlassian marketplace.

Cons

  • Very small community compared to Github.

  • Sometimes seems buggy or unresponding.

  • Not intuitive.

  • Self hosted configuration is complex to deploy.

Which one should you choose ?

Personally, even if Microsoft bought Github, I will stay (as a person) on Github, because since the Microsoft era, I can have access to private repositories for free. I have access to a Kanban board which gives me a good point of view of my project.

At school we use a self hosted Gitlab server, and I have to say that it does the job pretty well. Of course, we don't use all the power of it but I think that each platform has its pros and cons like we saw earlier.

I'm sorry I didn't go into details, but I don't think I have enough knowledge to be able to present them to you properly (CI, pipelines, ...) I've already been confronted to these technologies in the past during previous jobs but I've never touched them personally (for now), when it will be the case, I might write something about it.

It is very difficult to choose, and it also depends on everyone's preferences. I would say that each system can coexist, especially since it is possible to import a Github project in Bitbucket and vice versa, ...

I would suggest you to try each or 2 of them and make a decision. You can also find on internet more informations to comparate by yourself.

Here is some interesting links :


Conclusion

What I find funny and sad at the same time about developers is that they create software that are so complicated sometimes that they have to write software to help them using the first one πŸ˜‚πŸ˜­. #inception

I would like to add, that I did my best to give the most objective and relevant information and I learned a lot about these platforms while preparing this article. I hope that you have learned something from this reading as well.

Let's discuss in the comments, I would love to hear your opinion and experience with those platforms πŸ˜πŸ‘ŒπŸΌ


I just created a Twitter account, because I saw that a big part of the community was on Twitter. This year I want to be closer to my followers. (~3700 for now, you are AMAZING πŸ˜‡πŸ˜)

Top comments (41)

Collapse
 
thecodingalpaca profile image
Carlos Trapet • Edited

My TL;DR opinion based on experience:

  • Bitbucket: absolutely trash and extremely unresponsive. Would never use professionally again.

  • GitLab (not self-hosted): Merge Requests and other tasks take literally ages to do (the server responds with a timeout...) and sometimes get lost. Utter trash, would never use again.

  • GitLab (self hosted): currently using it and it works wonderfully. I'd encourage everyone who is working in a team/professionally to go for it.

  • GitHub: Use it for personal projects or if your team cares about open source

Collapse
 
yoadev profile image
Younes • Edited

I have never used Gitlab without hosting it myself, very interesting ! I will think twice before using it that way πŸ˜‚ Thank you !

Collapse
 
eljayadobe profile image
Eljay-Adobe

My private proprietary project uses GitHub (enterprise, self hosted), and it works wonderfully too.

Collapse
 
syntaxseed profile image
SyntaxSeed (Sherri W)

BitBucket Con:

Totally screwed their long-term Mercurial customers. 😑

Collapse
 
yoadev profile image
Younes

Is there a lot of people still using it ? I'm only 20, I have no experience with it..

Collapse
 
ianwijma profile image
Ian Wijma

I use it daily at work. And the reason why we use it is because it's way easier then git command wise imo. For example to add AND remove files you just use hg addremove and all files you added and removed are synced.

Also you don't need to stash file for a commit. All files are committed by default. You still can commit only certain files. But I personally never used that feature in git of mercurial and normally just used git add . to stash all files for a commit.

Thread Thread
 
yoadev profile image
Younes

Ow interesting thank you !

Why does git became popular if mercurial is faster ?

Thread Thread
 
kerberosmorphy profile image
KerberosMorphy

I help a teacher in a programming class at university and we switch from mercurial to git and I'm really happy of that. Found it easier to help student and the mecanic to bundle and un bundle a project is so much more easier with git.

As for the platform, we were on Bitbucket but now that we are with git we evaluate Github VS GitLab.
I use GitLab a lot at my job and I think GitLab could be easier to teach for new student or student who will only have one or two programming courses.

But there's also Github classroom, I will test it this semester, I'm looking to automatize correction for semesters project directly in github.

Collapse
 
syntaxseed profile image
SyntaxSeed (Sherri W) • Edited

I dunno. But the hard-stop of "we are deleting all your mercurial repos in June" is pretty drastic. Means a lot of old OSS will just vanish.

They could have put them in archive mode.

Thread Thread
 
yoadev profile image
Younes

I totally agree with you ! Honestly, when I read this I was shocked 😬

That's the problem with big companies... They do what they want πŸ€·πŸ»β€β™‚οΈ

Thread Thread
 
bergamin profile image
Guilherme Taffarel Bergamin

Democracy doesn't apply to companies

Collapse
 
maskedman99 profile image
Rohit Prasad

Mozilla Firefox uses mercurial version control system along with some other hosting platform, and is not very welcoming for new people to contribute. I hope they migrate to GitHub.

Thread Thread
 
yoadev profile image
Younes

I hope too...

Collapse
 
bergamin profile image
Guilherme Taffarel Bergamin • Edited

@ian Wijma

Or you could use GitKraken and virtually never open bash again.

Sorry if I'm replying to the wrong thread. The reply button got me confused.

Collapse
 
jrsofty profile image
Jason Reed

I've been using Bitbucket for personal projects for a few years now and have had no serious problems. I went with them initially because GitHub didn't offer private repositories at the time. The one thing I like better with GitHub is the issue handling. It's a little more versatile than the default with Bitbucket unless you are willing to pay for JIRA.

Collapse
 
kelvinyap profile image
Kelvin Yap

Jira has a free edition now!

Collapse
 
yoadev profile image
Younes

Thank you for sharing ! πŸ˜„

Collapse
 
t4rzsan profile image
Jakob Christensen • Edited

Microsoft's control over the product.

I am not sure this is a bad thing. GitHub was kind of stagnant before MS took over. Lots of good things have happened to GitHub under MS, including free private repos. Nat Friedman seems legit and dedicated.

I used to like Bitbucket better than GitHub but now I am not so sure. Bitbucket is often slow and unresponsive and I never liked Jira. But I do not plan on moving my code from Bitbucket anytime soon.

Collapse
 
jpkeisala profile image
Jukka-Pekka Keisala • Edited

Yes, this "Microsoft bad" catch my eye as well. I also think Microsoft involvement has been positive so far. It seems that Microsoft still has some of that Gates/Ballmer era stigma on some.

I am however confused about Github vs. Azure DevOps. Essentially on source code management these two tools are "competitors" and Github is moving also to Azure DevOps world with CI offerings. So in the roadmap I would like to know what is Microsoft's roadmap on these two products? Surely Github being cloud independent and very popular is going to stay but will DevOps eventually going to merge to it? I hope so.

Collapse
 
t4rzsan profile image
Jakob Christensen

Yes, Microsoft has changed a lot since Ballmer.

I don't think that Github and Azure DevOps will merge anytime soon. Github actions are still quite limited. For example, you can still only build .NET Core projects and not .NET Framework with Actions. Also, the whole project management thing in DevOps is way more advanced than Github issue tracking.

But in the long run I don't think it makes sense for Microsoft to maintain both systems.

Collapse
 
yoadev profile image
Younes

I'm also staying on Github for that, good improvement have been made I have to say ^^

Collapse
 
afragen profile image
Andy Fragen

If self hosting, another option worth looking at is Gitea.

Collapse
 
jakehamilton profile image
Jake

I'm very happy with Gitea so far. I used to run my own GitLab instance, but recently migrated to Gitea and gosh is it wonderful. Much lighter weight and easier to start up.

Of course, Gitea does not have the same amount of features baked into it that GitLab does. I don't consider this a problem, however. I'd much rather have a simple service for version control and then use other tools for things like CI/CD (eg. Drone).

Collapse
 
yoadev profile image
Younes

Thank you for your feedback πŸ˜πŸ‘ŒπŸ»

Collapse
 
yoadev profile image
Younes • Edited

I didn't heard about Gitea, It seems very simple to use I will look at it more closely when I have time, Thank you !

Collapse
 
afragen profile image
Andy Fragen

Written in Go and you can even run it on a Raspberry Pi

Thread Thread
 
yoadev profile image
Younes • Edited

I will definitely give it a look 😁 Thank you for your time Andy πŸ‘ŒπŸ»

Collapse
 
glennmen profile image
Glenn Carremans

I use both Github and Bitbucket.

  • Github: Mostly open source public projects
  • Bitbucket: Private projects

Wanted to add that this might be interesting to mention in your blog post: Employees of Microsoft’s GitHub demand company cancel its contract with ICE

Collapse
 
yoadev profile image
Younes

I didn't know about this story 😬 Thank you ! 😜

Collapse
 
arpitvasani profile image
Arpit Vasani • Edited

You got to be very bored to write a post which is this much funny !! πŸ˜‚πŸ€£ !! great job really !!

Collapse
 
yoadev profile image
Younes

Not that much πŸ˜‚ Thank you !!

Collapse
 
bauripalash profile image
Palash Bauri πŸ‘»

I use both GitHub & GitLab. After Microsoft acquired GitHub, I host my public facing projects on GitHub and some secret out of the world projects on GitLab 😁

Collapse
 
chucklepie profile image
Neil Walker

I just wanted to say πŸ˜‚πŸ˜‚πŸ˜‡

Collapse
 
yokotobe profile image
yokotobe

i vote for gitlab since it has the best functions for documentation(wiki) and issue managemnt. Everything is connected, supported copy&paste to upload picture to document.