A full comparison between GitHub and Bitbucket (Updated 13/8/17)

a bucket full of water is thrown on an octocat with an umbrella

Let’s go back to 2005 when Bitkeeper, host of the Linux kernel project back then, pulled the trigger and changed its core policies around pricing. The kernel’s license was an especially thorny issue after a free Bitkeeper clone was created by Andrew Tridgell – a key figure in the open-source community. Linus Torvalds didn’t like how the whole thing unfolded (to say the least), and began working on his own distributed version control system called Git (British slang for a rotten person).

He’s famously quoted for it: “I’m an egotistical bastard, so I name all my projects after myself. First Linux, now Git”. Mercurial was another worthy alternative being developed for the Linux kernel by Matt Mackall with a similar purpose. Git eventually prevailed, and 3 years after that Bitbucket and GitHub were born. If one existed, I would pay honest money to watch a documentary about the full story.

But now that we’re done with this short piece of repo-history, let’s dig deeper at what each service offers us today, and also share some insights we gathered over time from our own experience with buckets and octocats.

Does my code have to be public?

Bitbucket and GitHub take different approaches to private and public repositories. This is at the heart of their pricing model, or even philosophy you might say. We’ll talk more about these differences below. Bitbucket offers unlimited free private repos while GitHub charges for them. Public repositories are unlimited and free in both services to an unlimited number of contributors.

Bottom line: No, you’ll get free private repositories on Bitbucket and pay for them on GitHub.

Where is it easier to work on open-source projects?

The difference in approach continues with the second aspect of pricing – the number of collaborators. Bitbucket’s main offering is a free account with up to 5 collaborators on private repositories, while GitHub’s focus is on its public repositories, so it has an edge there. Although they offer many similar features for code hosting, GitHub’s has been focused on open-source while Bitbucket seems to be more focused at enterprise developers, especially after its acquisition by Atlassian in 2010.

Bottom line: GitHub is the undisputed home for open-source.

Mirror mirror on the wall, who forks best of them all?

GitHub is definitely winning the popularity contest, having hit the 20M user mark. Bitbucket on the other hand is no underdog, and it reached 6M developers February 2017, offering a well rounded experience, as well as a part of Atlassian’s product suite. Both offer a slick front-end which includes issue tracking, wikis, easy to use REST APIs, and a rich GUI and command line tools for Windows, Mac, Linux and even mobile.

On March 2015, Bitbucket introduced Snippets, offering similar usability to Github’s Gists, and on September 2015, it added two-factor authentication, closing the features-gap between Bitbucket and GitHub. And let’s not forget, you can’t spoon on GitHub?

Bottom line: It’s a matter of taste.

Pages – The 2048 Effect

A nice feature both services share is Pages – hosting simple HTML pages and opening up projects to users who may not necessarily be developers.  You could say it’s a hellish feature for developers, having burnt some fine productive hours playing 2048 and its clones

This feature is pretty much the same on both services. You can create a repo named either username.bitbucket.com or github.io and get your own nifty URL. github.io URLs are turning out to be a semi-obligatory feature for many open-source libraries and projects, paired with the complementary “Fork me on GitHub” banner. Watch out though, if you’re using a custom domain, it might cost you some precious loading time.

Bottom line: Awesome feature, available on both services.

To see and be seen

The difference between GitHub’s and Bitbucket’s approach is also evident in the Explore page. On Bitbucket this only shows up as a simple Search. GitHub on the other hand boasts trending repos and showcases popular topics, not to mention its use as a portfolio for developers and an open job board.

Bottom line: Unless someone is specifically looking for your project, it won’t be found on Bitbucket.

Where do they stand with community support?

A quick look at the newest questions on StackOverflow will reveal that GitHub is asked about every couple of minutes, while Bitbucket questions take about an hour or two to resurface. You will find an answer to either question you might have thought. Great resources and online communities are also available on the websites themselves, but GitHub is definitely miles ahead here. When we looked into the most popular libraries in Java, Ruby and JS, there was no doubt the place to look was GitHub. Again, its open-source nature has gained it a golden reputation.

Bottom line: GitHub, GitHub and GitHub.

Can I switch between the two?

Yes you can. Bitbucket makes it pretty straightforward to import your repositories from GitHub. I can’t say the same for the other way around, but it is possible of course, and a few walkthroughs are available out there. Some more work will be needed to transfer issues and wikis as well.

Bottom line: It’s possible, but you’ll sweat less moving to Bitbucket.

What is it about Git and Mercurial?

Although not the center of this post, you can’t talk about Bitbucket and GitHub without answering this question for yourself. Bitbucket was conceived as a tool for Mercurial and added Git support at 2011, while GitHub was all about Git from the beginning. There is no absolute right decision and they are actually very similar, check out this comparison right here. The main trade-off is a steep learning curve for Git in exchange for greater control than in Mercurial. If you’re migrating to a distributed version control system for the first time from systems like CVS or SVN, it is often considered easier with Mercurial.

Bottom line: Mercurial is faster to learn, but Git offers greater control.

What to expect with pricing?

Besides the enterprise options, Bitbucket puts a price tag of between $10-200 for 5-Unlimited collaborators. On GitHub, pricing is divided into personal and organizational accounts. The organizational accounts offer a team management layer and range between $21-200 per month for 10-125 private repositories. Personal accounts range between $7-50 per month for 5-50 private repositories. Academics enjoy free or discounted accounts on both.

Bottom line: The price varies according to your needs, and both offer similar price tags.

What happened to on-premise?

Both services offer on-premise solutions and this is where Bitbucket hopes to outgun GitHub with a similar product by Atlassian called Bitbucket Server (formerly known as Stash. Unlike other account types, pricing here is a bigger pain point. GitHub asks for $2,500 per 10 developers, and Bitbucket starts at only $10 for small teams up to 10 developers, and $1,800 for 11-25 developers.

When rising to hundreds of developers, Stash offers much lower prices for similar functionality as in GitHub. Some famous users of GitHub Enterprise are Blizzard, Rackspace and Etsy. Nasa, Netflix and Philips are with Stash.

Bottom line: GitHub Enterprise is way more expensive than Bitbucket Server, offering similar functionality.

And what about you?

Hope this was helpful and helped clarify things. Please let me know if I missed anything important and what you actually use in the comments below.

Read More:

octocat dressed up as a detective GitHub Research: Over 50% of Java Logging Statements Are Written Wrong

splunk vs elk ebook cover Splunk vs ELK; The Log Management Tools Decision Making Guide

Some kind of monster @ OverOps, GDG Haifa lead.
  • http://draketo.de Arne Babenhauserheide

    If you look deeper into both systems, you’ll quickly see that the extensions you can write for hg allow you much greater control than git: You can actually change how core-commands work with only little effort (wrapcommand). This for example allows the hgsite extension to enable you to do hg push ftps://host/path/to/repo

    • http://www.takipi.com/ Alex Zhitnitsky

      Thanks @ArneBab:disqus! You’re making 2 good points:

      I wasn’t taking git/hg extensions into consideration and focused on the tools themselves. Something similar is possible with Git as well: https://blogs.atlassian.com/2013/04/extending-git/ It was interesting to see Facebook’s work with Mercurial, thanks for the link.

      What I meant in open-source nature was taking open-source projects and putting them in the spotlight, making them more accessible to developers. Not necessarily being open-source yourself, but I see what you mean.

      • http://draketo.de Arne Babenhauserheide

        From what I see, the git extensions end at additional commands. For hg you can actually change the working of core-commands and thus integrate new features cleanly into the core experience. This allows for example to just clone, pull and push git-repositories with hg-git as if they were native hg repositories.

        But I agree that Github *is* really neat when it comes to providing PR for projects.

  • http://nodecraft.com/ Jon Yarbor

    I’m apart of a small startup with less than 3 people using git. We use both Github and Bitbuckit for free. Github lets us publish our Open Source and Bitbucket lets us keep our closed source private.

    • http://michal.paluchowski.com/ Michał Paluchowski

      Yes, for most small teams it’s beneficial to use both services. And because of the nature of Git – where all repositories are equal, and naming one central is merely convention – it’s also pretty easy to host projects on both systems at the same time. That in turn might come in handy in time when redundancy is needed – one or the other service goes down.

  • rbelouin

    Hi! I think you missed https://education.github.com/ 😉

    • http://www.takipi.com/ Alex Zhitnitsky

      Hi @rbelouin:disqus, thanks for the link! I wanted to hit the topics that would interest most of our readers so I didn’t go more in depth with academic programs. Just mentioned they exist with free accounts or discounts.

    • http://michal.paluchowski.com/ Michał Paluchowski
      • http://www.jonathanloescher.com Jonathan Loescher

        You can actually just add your EDU email address and it will automatically upgrade you to their Academic plan.

  • Oscar Blank

    I’ve used both services, but prefer Bitbucket. Since I have both open source and proprietary repositories, Bitbucket serves all my needs, and one of those needs is the free pricetag. Also, Github’s logo is super lame. I can’t stand looking at it.

  • http://www.updatenode.com Lukas Herbst

    Great article. Thanks Alex. I took this post as a reason to re-think our decision for our open source client: http://blog.updatenode.com/2014/06/24/why-we-have-moved-from-bitbucket-to-github/

  • Noodle

    Thanks for this article. Informative, really.

  • Akil

    Thanks. Much appreciated.

  • http://livemyadventure.tumblr.com/ dontforgetmario

    One important thing is also that Bitbucket support and implements Internationalization via Transifex https://www.transifex.com/projects/p/bitbucketorg/ so that you can have Bitbucket in your own language and not only in English like Github.

  • facundis

    About the on-premise, we also have a newer option: https://about.gitlab.com/

    • Sytse Sijbrandij

      GitLab B.V. CEO here, thanks for the mention facundis! GitLab Community Edition is open source and the most popular way to run git repositories on your own server. It also has an issue manager, wiki’s and continuous integration. If you want free hosting with unlimited (private) projects and unlimited collaborators you can use our SaaS https://about.gitlab.com/gitlab-com/

      • James Dube

        Gave Gitlab a test run…to be honest im pretty impressed! If i had my own private server id go with gitlab no doubt

  • Marcelo Lebre

    You shouldn’t really leave http://www.gitlab.com out of the picture. It is clearly punching above it’s weight.

    • Sytse Sijbrandij

      GitLab B.V. CEO here, thanks for mentioning us Marcelo! GitLab is used by more than 100,000 organizations including NASA, SpaceX, IBM, Comcast and AT&T and we’re growing rapidly.

  • jredic

    Can’t think of a single reason to pick mercurial over git these days. Git has become super-easy to use, and everyone in the industry basically require that you know it + github is the lingua franca of sharing code.

    Mercurial is fine, but irrelevant.

  • Koen S.

    Enhanced security is one thing that I’m missing in bitbucket which seems to be critical for enterprise/closed source repos is the 2-factor authentication. People have been asking it for over 2 years now (listof +1’s and almost reaching a 1000 now), https://bitbucket.org/site/master/issue/5811/support-two-factor-authentication-bb-7016

  • Pablo Liberona

    Thank you very much for this article. I had the confusion but now the issue is clear 🙂

  • James Riche

    If you need an enterprise git management system, a lot of people go with Stash (Bitbuckets sister) for git management. Theres a bunch of plugins for it that make it better then github. Check out https://marketplace.atlassian.com/plugins/com.mohamicorp.stash.plugin.editor-for-stash

  • Dave O’Connor

    Great article. Thanks very much.

  • jasongowans

    Hi Alex, FYI Bitbucket now has an add-on marketplace, and Aerobatic is one such add-on that provides static hosting that includes CDN, SSL, custom domains, API proxy, and more. http://bitbucket.aerobatic.com/

  • Cinder Biscuits

    Bitbucket now offers both two-factor authentication and “gists” in the form of what they call Snippets.

  • ArafatX

    I like how GitHub deceived people with the word Free 0 private repository = No free for private repository. It’s a marketing strategy there.

  • http://www.miscy.net/ Max Pen

    I came here to find out how to use bitbucket pages but found no answer

  • mmahmoudian

    Nice article but two points:
    1. Please update the article. the html pages is not available in bitbucket any more, so I use Netlify instead, but it was a bummer that they discontinued that feature.
    2. You might want to add new git systems is some sort of a table in your article (Gitlab.com, buddy.works)
    3. You might wanna add the point in GUI that Github GUI is very basic and Sourcetree is way much advanced.

    in general, I loved your article and hope with such updates more people can benefit and make more supervised decisions.

  • https://vk.com/vintproykt VINTproYKT

    I find Bitbucket very useful in business and for startups. GitHub is the pearl for open source products (just look at GUI and design, it makes sense for any public project)!