If you’re developing software, apps or anything else that requires coding and you plan on sharing the source code with the rest of the world, the best way to do it is through a source control hosting platform.
If you’re using Git for source control, you’ve got three primary options — GitHub, GitLab and BitBucket. What are they? How are they different from each other and which one’s right for you? Read on to find out.
What is Git?
Git is basically a version control tool that keeps track of the changes you made in specific files and folders over time. More specifically, Git keeps track of all the changes you made to your source code and related dependencies throughout development.
Why would you want to use it? Well if you’re a developer, it makes sense to keep track of all the changes you’re preparing to your source code throughout development as it helps in quickly getting back to an earlier stage in case you run into any bugs or dead ends.
If you’re working with a team, something like Git can be a lifesaver. You can see which team member made exactly what change at what time and to which files.
While Git can work locally on your machine or a local server, it makes the most out of it when you use it across a hosting platform, and that’s where things like GitHub, GitLab and BitBucket come in handy.
In layman terms, Git is a version control tool that allows you to manage and track your source code history. Rest are simply cloud-based hosting services that let you manage Git repositories.
Also read: How to create a Git repository? How to connect it to GitHub?
GitHub
Starting with what’s perhaps the most popular code-sharing service on the planet. The name GitHub is synonymous with programming itself.
Almost all major companies use GitHub for managing their core software. That’s not only because GitHub has been around the longest, but it has some of the most advanced and secure features when it comes to privacy.
It is easy to incorporate into workflows, easy to use and set up and can work with bigger or smaller projects without any worries about team sizes.
However, if you’re a lone developer, all this security and privacy is a bit costly to you. As long as you’re hosting public repos on GitHub, you’re good to go, but if you want a private one, the $7/month plan sounds a bit steep as compared to the competition. On the corporate side of things, the prices go as high as $25 per person per month.
Is GitHub any good, yes it is. Is it costly as compared to the competition? Yes, it is. The choice is yours.
Also read: How to create a GitHub repository?
GitLab
GitLab is pretty much what GitHub is, except that it’s cheaper (and by cheaper I mean entirely free, unless you’re going self-hosting) and open source.
While all the three options here support open-source projects, GitLab is the only one which is open source itself and self-hosted. That’s pretty much the only differentiating factor between GitLab and GitHub. The UI is excellent as well. You won’t have a hard time using this website.
The GitLab community edition is completely free. That in itself is quite a significant advantage from GitHub or even BitBucket. The pricing for the enterprise edition is several times less as compared to GitHub as well.
Overall, not a wrong choice if you’re a bit short on budget.
 BitBucket
Just like it’s competitors, BitBucket is an online hosting service for any codes you’d like to upload. At launch, it used to work exclusively with Mercurial (another version control tool like Git), and since October 2011, it’s been using Git as well.
BitBucket does offer both paid and free account, but you can still create private repositories on a free account. However, the number of users is limited to five on the free account.
Bonus points if you’re working with Atlassian as it already integrates with Atlassian software like JIRA Software, HipChat, Confluence and Bamboo. Not to mention the fact that they own BitBucket as well.
Conclusion
So which one to use?
The answer is quite simple, actually. GitHub has the best community support out of the three. So if you’re okay with a public repository and plan to release something open-source and have a bunch of people contribute, GitHub makes perfect sense.
BitBucket and GitLab serve as alternative options if you don’t want to use GitHub for whatever reason.
However, if your work is a bit more discrete and you need a private repository and don’t want to spend anything on it, BitBucket and GitLab are great options. If you want everything free and totally opensource, GitLab is the way to go.
Also read: What is PGP encryption and OpenPGP? How do they work?