The Business of IT Blog

GitHub vs GitLab vs Bitbucket: What’s The Difference and How To Choose

Walker Rowe
2 minute read
Walker Rowe

Github, GitLab, and Bitbucket are software version control repositories. These let programmers check out code and then push updates back to the cloud, normally using Git or Mercurial command line tools. You can also install some of these products in-house. And they can also be connected to a host of applications, like NodeJS or Zeppelin notebooks, so store code in the cloud as well. Development shops often use Jenkins to pull code from these repositories

There are some basic concepts to learn. These let developers take a fork to make changes to software that would not affect the main branch. The programmer works on the code on their laptop. The software keeps track of changes in their location repository which they commit to update the local repository. Then, if they want to push those changes back onto the main branch the programmer can do that using the merge function. Whoever is responsible for the main branch approves all changes.

Mercurial versus Git

Git and Mercurial both do basically the same thing: then let programmers clone a repository, make changes, then push the changes onto whatever branch they are working on in the code repository.
Both products are complicated to learn. Mercurial, some say, is less complicated but in my view both are complex.

Mercurial probably has fewer users than Git. And I found in writing this article that it was difficult to get it to work with SSL3, i.e. TLS2, using self-signed certificates.

Free versus Paid

If you want to have a private repository on Github you have to pay for that. To help cut into Github’s larger market share, Bitbucket lets you have up to 5 users for free. Github costs $9 per developer or $21 for their Enterprise product. Gitlab, is somewhat different, as we explain below, because they are focusing more on a devops product than simple code repository.


This system has the largest number of users, with major opensource projects hosting their code there. Github is free for public repositories, meaning those you want the public to be able to download (called clone). This is how projects, like Apache Spark distribute their code (in addition to publishing to Linux repositories, etc.).


Bitbucket is good for small teams on a budget. For private repositories, it is free for up to 5 users. It is basically the same as Github. So you could conclude they are trying to take some market share away from Github by making parts of Bitbucket free.


Gitlab is shifting their focus to devops according to their own web page. They write, “Now, we’re taking it a step further to unite development and operations in one user experience.”

So which one should you use? I would pick Github and use git and most people use those, so your developers probably already know that, and it is not expensive.

How to evolve IT to drive digital business success

When IT and the business are on the same page, digital transformation flows more easily. In this e-Book, you’ll learn how IT can meet business needs more effectively while maintaining priorities for cost and security.

These postings are my own and do not necessarily represent BMC's position, strategies, or opinion.

See an error or have a suggestion? Please let us know by emailing

BMC Bring the A-Game

From core to cloud to edge, BMC delivers the software and services that enable nearly 10,000 global customers, including 84% of the Forbes Global 100, to thrive in their ongoing evolution to an Autonomous Digital Enterprise.
Learn more about BMC ›

About the author

Walker Rowe

Walker Rowe

Walker Rowe is an American freelancer tech writer and programmer living in Cyprus. He writes tutorials on analytics and big data and specializes in documenting SDKs and APIs. He is the founder of the Hypatia Academy Cyprus, an online school to teach secondary school children programming. You can find Walker here and here.