GitHub vs. Bitbucket: It’s More Than Just Features

By Alex Zhitnitsky —  May 21, 2014 — 13 Comments

GitHubVSBitbucket GitHub vs. Bitbucket: It’s More Than Just Features

 

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 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 4M user mark. Bitbucket on the other hand is no underdog, 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.

You could argue GitHub is ahead here, but it’s sometimes a matter of taste. One central feature available on GitHub but not on Bitbucket is Gists which let you apply version control to shareable code snippets or just plain text. There is a popular open issue on Bitbucket to implement this with Mercurial, but for now it doesn’t looks like it’s happening. Another highly ranked open issue on Bitbucket which is already available on GitHub is two-factor authentication. Almost forgot, you can’t spoon on GitHub icon wink GitHub vs. Bitbucket: It’s More Than Just Features

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.

ExploreGitHub 1024x648 GitHub vs. Bitbucket: It’s More Than Just Features

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 though. 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 to personal and organizational accounts. The organizational accounts offer a team management layer and range between $25-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: Check out the attached comparison table and see for yourself.

PricingtablesBitbucketVs.Github GitHub vs. Bitbucket: It’s More Than Just Features

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 Stash. Unlike other account types, pricing here is a bigger pain point. Github asks for $5000 per 20 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 Stash, 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.

 

takipi logo 03 GitHub vs. Bitbucket: It’s More Than Just Features

Java Developers – Know when and why production code breaks – Start Your Free Trial 

 

 

Alex Zhitnitsky

Posts Twitter

Some kind of monster @ Takipi, 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.