Github has become the defacto online source hosting provider. More projects than ever before use github, and it has become a predominate force in the open source community. I use github quite a bit, and I love it.

What is bitbucket?

If you are unfamiliar, bitbucket is Atlassian’s version of github. Bitbucket provides online hosting of code. Free public repo’s, and it even stands apart from github by providing free private repos.

What makes bucket so good?

I am a huge fan of controlling releases through version control branches. I also enjoy tools that prevent me from doing the wrong thing.

When I use github, and I want to have other developers work with me on a repository, I have to give them access to the repo. Unless you are an organization, giving someone access gives them full commit access on every branch, which can be detrimental.

Bitbucket allows for branch permissioning, which is a feature that I really believe in. For example if you wish to lock down release branches from commits directly, you can do that. Github on the other hand does not allow this level of control, unless you have organizational rights.

Bitbucket has the ability to prevent history re-writes including force pushes, which jenkins developers found out was a feature they wish they had.

Why I don’t use bitbucket (often)

So overall I love bitbucket, except I hardly use it. Most of the coding I do, I open source. I want people to find my code, and contribute to it. Anyone can work open source projects in bitbucket, but the platform does not provide a great way for people to discover repositories. To put it simply, bitbucket was ment for people working in teams, while Github was ment for social coding.

If I work on a startup, or something where I have a real team. We will use bitbucket, and even pay for additional features. I have taken advantage of the free repos in bitbucket, quite a bit.

Overall, both services are pretty solid. Use what will work best for you, not what everyone is currently using.