Where should I host my source code?
Two of the most prominent project hosts are GitHub and BitBucket. GitHub has a larger community, with heavy emphasis on open-source, but Bitbucket also has its fans, especially for closed-source projects. Here's a quick comparison of their feature sets.
Revision control support
GitHub only supports Git as a revision control tool. Butbucket allows you to use Git or Mercurial. Another popular version control system, Subversion, is not supported by either host.
Functionally, the two hosts are pretty much identical. Both have a web-based source-code viewers, issue tracking, wikis and options to follow projects.
Winner: Bitbucket (unless you use Git)
Both GitHub and Bitbucket support private repositories, but their pricing models are different. GitHub charges you for private repositories, whereas BitBucket charges you for users.
If you have a small team working on code you want to keep private, Bitbucket is free for 5 users.
With Github, you get unlimited collaborators and public repositories for free, making it ideal for open-source projects. You pay per private repository. With Bitbucket, you pay per collaborating user, but can have unlimited private repositories.
I found this nifty tool for checking which service is cheaper for your needs: http://codepen.io/anon/pen/uymiD
Basically, if you need many private repos, go for BitBucket, if you need many collaborators, GitHub is your thing.
GitHub has clearly more users and hosted projects. This is a good thing, if you're looking for excited open-source collaborators to join in your project. How important this is depends on how you're using your repositories.
| GitHub | Bitbucket | | 4 million users | 1 million users | | 6 million repos | Unknown repos (way less) |
GitHub has four times as many users as Bitbucket, so it's a bit easier for people to start forking your code.
Google trends interest: GitHub (red) vs Bitbucket (blue)
GitHub has support for free hosted webpages, which is a really nice option to have with an open-source project. It's pretty simple to set up, with a static website generator like Jekyll, and definitely a nice thing to have.
Bitbucket has a close relation with other Atlassian projects, such as Confluence and Jira. In a larger organization that uses Atlassian products, it might be useful to be able to easily integrate these systems with each other. Github has a larger number of other available integrations, and both services have decept APIs, so this is not such a big selling point.
So which is better? I use Bitbucket for private config files and work, but I also have a GitHub account for keeping tabs on open-source projects that I'm interested in.
If I ever start a bigger open-source project, though, it will be on GitHub.