How do you choose between two popular, richly feature-packed version control services: GitHub vs Bitbucket? In this article, you’ll get a few simple points of reference that will help you decide. You may decide that neither of the above options are right for you, and a self-hosted private server answers the call. Either way, by the end of this article you should have all the data you need to make up your mind.
GitHub Vs Bitbucket – Version Control Systems Compared
For this article, you will see two of the most popular hosted version control systems (GitHub and Bitbucket) compared alongside hosting your own private Git server on a VPS. This is because GitHub and Bitbucket provide a rich set of features for Git users, but they are hosted by a third party hosting provider. So this article will provide some information on self-hosted options for those who would prefer to have much control over their Git services.
When it comes to comparing costs for GitHub vs Bitbucket the final analysis comes down to users and privacy. This makes sense, user management and the security and integrity of your source code are pivotal to the success of your project. So if you want to have secure hosting for your code, and want to take advantage of a nice interface, GitHub and Bitbucket charge you for it.
The whole cost matrix flips on the VPS side of the ledger. With a private server, you pay a small fee for the server itself (about $5 a month) and you can add as many users and security parameters as you need for free.
Simple cost matrix based on feature and additional cost:
|Cost and user integration with no additional cost||GitHub||Bitbucket||VPS|
|Unlimited private repositories||Yes||Yes||Yes|
|Unlimited users on public repository||Yes||No||Yes|
|Unlimited users in private repository||No||No||Yes|
|Pay per user||Yes||Yes||No|
You can see from the above table that with a VPS you pay a flat fee for unlimited Git users and all the necessary Git functionality, whereas the hosted providers charge additional fees for the same features.
If you choose to use GitHub, and need unlimited users, and privacy is not important to you, your best bet is to start a public repository.
Interface, Actions, and Deployments
Both GitHub and Bitbucket have a rich graphical user interface (GUI) that lets you easily view commits, logs, branches, and just about everything you could possibly need to manage your repositories. They also allow you to seemlessly integrate different users.
But remember, as discussed in the cost section, with GitHub and Bitbucket new users will cost you more money.
And when it comes to interface you are not sacrificing much. Just about all of the interface features you get on GitHub and Bitbucket can be found in various local Git clients, if you are averse to using your command line interface (which many Git users prefer). Likewise, there are interfaces for popular text editors like Vim, Atom, and Microsoft Visual Studio Code, and graphical editors like Emacs.
If you are comfortable using Git in general, the web interface does not really matter when the time comes to get some work done. So you will have to decide if the costs justify it.
However, even in a VPS, you are not limited to merely text-based interaction. There are a few free Git addons that can provide a minimalist web front end, if you want to make your repositories viewable to the public — or on an internal network via a web browser. The Gitweb client comes with Git, and can be configured to run with Apache or NGINX on just about any server.
What are Actions and Deployments?
GitHub and Bitbucket allow you to take advantage of virtual containers and YAML scripts that can be triggered by various Git actions. For example, a Git push can trigger some shell scripts that will build and deploy a website, compile various assets, or virtually anything you could do in a server.
These actions and deployments can be very handy, but for most projects, with one or a few participants, they may not be necessary and can add unnecessary complexity to a project. For most every day project needs such as compiling CSS, building static assets, transferring files, the base Git application hooks are very powerful and can handle the running of various shell scripts or additional applications.
Another concern you will no doubt have to contend with is security of your Git repository. GitHub emphasizes a community coding eco system, in which anybody can “fork” a public repository, or clone it, and contribute their own improvements. If these changes prove to be an improvement, someone with the necessary privileges can merge that code into the master branch. Often, this can be done with a “pull request.” GitHub and Bitbucket provide convenient interface buttons for managing these kinds of merges safely.
But beyond what the interface offers, you have no idea what kind of backend security GitHub and Bitbucket are using. You might inquire, but you will have no way of knowing for sure how your data is being stored and accessed. For most projects, this level of security detail is not significant, but if you like to know exactly how your data is being secured, and want some say, then you need to be on VPS.