Choosing the right source control platform for your team is one of the most important decisions you’re going to make. There’s a good chance that you’ll choose Git for the version control software (VCS) itself, but the platform where the code lives is equally important. Many times, it comes down to Bitbucket vs GitHub. Over the years the two have grown strong communities and userbases. In this post we want to take a look at both platforms to see which would better serve your development team’s needs.
GitHub vs Bitbucket: The Basics
If you are a newcomer to Git, GitHub, and Bitbucket entirely, you may want to have a look at our beginner’s guide to Git. It will walk you through the fundamentals and get you prepped for understanding just what is going on in this article.
If you boil it down to the most basic and fundamental difference between GitHub and Bitbucket, it is this: GitHub is focused around public code, and Bitbucket is for private. Basically, GitHub has a huge open-source community, and Bitbucket tends to have mostly enterprise and business users.
That’s not to say that you can’t have a private repository on GitHub (you can). Or that you can’t post your code publically on Bitbucket (again, you can). However, the majority of the users aren’t doing so. Plus, the defaults are set that way, too: public and private repositories respectively.
Outside of that difference, the two platforms function very similarly. You can create and manage repositories through the website or command line, log in with two-factor authentication (2FA), invite collaborators, open issues and discussions, create/merge pull requests, and generally handle all the fundamental things you would need to from the website. They’re super similar that way. That said, let’s dig into the specifics on each platform so that you can make the most informed decision possible.
Because Bitbucket is an Atlassian product (the makers of Trello and other apps), you have a slick and clean interface from the moment you log in. You see immediately that they’re focused on professional teams as an all-in-one solution for software development. Let’s see how.
1. Not Just Git
GitHub, obviously, is a hub for git version control. BitBucket, on the other hand, supports more than just git. You can also track your repositories in Mercurial, another popular version control management system. It does not support SVN, another major system, but at least with Bitbucket, you have a choice.
2. The Interface
Using Bitbucket’s website is just wonderful. It’s easy and simple, and you always know what’s going on. GitHub’s website works, but it’s not always clear as to what you need to do to accomplish certain things. That is rarely the case with Bitbucket. A sidebar tells you plainly where you are and what you can do. Note, this is only the graphical side of the website — both use the same git commands when you access it via command line.
4. Desktop Client
One area that is surprisingly absent from Atlassian’s Bitbucket is a desktop client (GitHub makes one, though). While many users will default to the command line interface and the fine control that it gives over your software versioning, there are still a lot who really like the feel and interaction of a git app. If you go with Bitbucket, you will not get a first-party one, but rather, an open-source program called Sourcetree.
Sourcetree is good stuff. It works, it’s smooth, and it’s free. Atlassian may not have made it, but that doesn’t matter. Regardless, neither GitHub’s client or Sourcetree feel quite as robust as the CLI if you’re coming from that. It is a good way, however, to introduce new people to git and have them be a little less intimidated.
5. Wikis and Boards
Having a project wiki is insanely helpful. Not only can your team use it for internal notes during development, but that also can then be opened up to the public as a source of post-release documentation. With Bitbucket, every repository can have a wiki. All you have to do is enable it, and you can control it exactly like you do the rest of the repo.
Additionally, lots of development teams use Kanban boards for project management. GitHub offers a Boards tab by default, and Bitbucket does not. What they do, however, is let you link your Trello account to a repository, so you have that service available within the website dashboard. It embeds whatever Trello board you already have, or you can create a new one.
Atlassian also has a robust app marketplace that you can search to install various integrations for your project. You may or may not need this kind of thing, but it’s good to know that it’s there.
6. Branch Permissions
And finally, branch permissions. With Bitbucket, you can choose who can work on any individual branch. Rather than simply giving Karen access to the repository, you can give her access to only a single branch. That way, the fear of an accidental master push is removed. This feature is huge, and it’s standard with Bitbucket, even in their free plans. If you have a huge team and need to manage features, bug fixes, releases, betas, and different aspects of the project with a delicate hand.
Moving onto GitHub, we should probably mention that GitHub is the service with by far the largest market share. In fact, it was bought out by Microsoft last year, which actually made people migrate off the platform — to Bitbucket mainly. But in that time, Microsoft has not affected the day-to-day workings of most devs, whether it’s on private, internal code or open-source work.
1. The Interface
Since we started out with Bitbucket’s interface, let’s start the same place with GitHub. It’s functional, and it works. What else needs to be said? It’s not necessarily pretty, but what it lacks in style, it makes up for in pure utility. With the majority of GitHub users working through the command line, the website’s aesthetics aren’t really on trial. But you use it for some things pretty regularly, and it works and is never quite confusing, but it’s not exactly straightforward all the time, either.
2. Desktop Client
GitHub does offer its own desktop client. In terms of aesthetic and ease of use, the client is a lot more in line with what Bitbucket’s web interface is like. Like above with Sourcetree, the GitHub client is great for easing people into git who may not like the command line, but if you’re a power user or need a very specific command that’s not one of the main ones (pull, push, add, commit, checkout, etc.), there’s a good chance that you will find either client lacking. That said, for what it does, the GitHub client is lightweight and does what it is supposed to do.
3. Free Private Repos
In what used to be Bitbucket’s strongest selling point, GitHub now offers unlimited free private repositories. Previously, only public repos could be created for free, and private ones were for paying members only. Now, however, you can create as many as you want, totally for free. The catch, though, is that you can only have 3 contributors to the repo (not counting yourself). So if you’re on a large team, you’re going to be paying, regardless.
But for hobbyists, people who need to share their code with someone but can’t be public, and for smaller projects, unlimited free repos is an amazing addition to GitHub that was a severely painful absence until this inclusion.
4. Wikis and Boards
As mentioned above, Atlassian’s ownership of Trello gives them a slight advantage by being able to integrate directly with Bitbucket. GitHub, however, has a built-in Kanban solution in the Projects tab. Every Project you create is its own board, and while GitHub’s isn’t as feature-rich as Trello by a long shot, a lot of planning and documentation can happen here because you can use markup to style anything you need in each card.
One weakness that GitHub has to Bitbucket, though, is that private repositories can’t have a wiki. Well, let’s rephrase that: free, private repositories can’t have a wiki. If you have a free, public repo, you can have a wiki. If you are a paying member, your private repos can have wiki access. While this isn’t a deal breaker for many people, it can be a little annoying when you have to go through some hackey steps to get the Readme, Project boards, and Issues to function as documentation.
5. High Storage Limit
Let us say this first: git is not a backup utility. You do not use git for online storage or backups. It’s inefficient for that, and it bogs down the servers and your computers. That said, however, when you get a large number of commits and pushes and branches, your repo can start packing some serious mass.
A benefit of GitHub is that you don’t get charged for that storage. Even on a free plan. There is a hard 100-gigabyte cap on GitHub repositories, though they recommend it being under 1gb (which many of them will be). The file uploads are limited to 100mb for command line and 25mb for web uploads.
Bitbucket, though, only allows free users 1gb total. Instead of requesting that you keep it below 1gb and then emailing you when you reach 75 (which is a very large range and kind of an odd choice), Atlassian pushes you toward the paid plans at 1+gb.
Now, that is 1gb per repo, so you can have multiple repos for free like that. But you don’t have to worry about that with GitHub. Both of them offer large file solutions, too (Bitbucket’s is here, and GitHub’s is here).
GitHub vs Bitbucket: The Winner?
I don’t think there is one. While the services absolutely have a different feel to them, and they absolutely target different demographics, you’re going to get good service and get your work done regardless of if you go Bitbucket vs GitHub.
In the end, you’re not going to go wrong with your choice. If you’re a small dev team, either will work almost exactly the same for you. But, if you’re new to git, Bitbucket is a little more forgiving and easy to use as you learn the workflow. If you are interested in open-source development at all, GitHub is the main hub for that.
In terms of business solutions…it’s a toss-up. The paid plans are pretty similar. It’s hard to make any kind of recommendation on that. Bitbucket kind of specializes in business clients, offering an all-in-one solution through Atlassian’s overall suite, but GitHub being the major platform in open-source and public code, if your company is involved in that, they may be the way to go.
In reality, neither is a bad choice to serve you and your source control needs. You can’t go wrong with either, honestly.
Which version control software and platform do you and your team prefer? Tell us why in the comments!
Article features image by Teguh Jati Prasetyo / shutterstock.com