The Key Differences : GitLab vs GitHub vs bitbucket

Hitesh Ramoliya
6 min readSep 23, 2017

--

Git is, first and foremost, a version control system (VCS)and it is open source. There are two types of (VCS). One is Distributed version control system (DVCS) and another one is Centralised version control systems (CVCS). There are many version control systems out there, for example, CVS, SVN, Mercurial, Fossil etc. Git is an example of Distributed version control System (DVCS), which keeps track of each modification done to the code over time, and allows you to backtrack if necessary and undo those changes.Git will allow you to go back to a previous status on a project or to see its entire evolution since the project created.Git is also called as source code management (SCM).

With Git, 3 basic issues were solved when working on projects:

  • It has made easier to manage large projects.
  • It helps you to avoid overwriting the team’s advances and work.
  • With git, you just pull the entire code and history to your system. It’s much simpler and much more lightweight.

Files in a repository go through three stages before being under version control with git:

  • Working Directory (Untracked): All the modifications are done in this stage to the files, but is not part of git’s version control. So, to make files part of git version control we use the below command #git add or #git add . (dot means everything).
  • Staging (Staged): All the files have been added to git’s version control and are tracked by git, but changes have not been committed, so to commit changes we use following command #git commit -m “commit message”.
  • Committed: All the changes has been committed.

There are many tools available in the market right now like Git to revision control and SCM (source code management) but why Git is the most popular? Well the reasons are:

  • Git tracks state, history and integrates of the source tree.
  • Git keeps old versions for you if any developer occurs any mistake in code, then you will always have the previous version to fix it.
  • Multiple developers can work together, once they write code in their local machine and commit it then other developers can pull it easily.
  • Large developers community and online websites to upload your source codes or get others source codes to make your work easier.
  • Lots of software available for both who comfortable with command line and for others GUI tools.
  • Easy and clear documentation to get started with.
  • Git will not use much bandwidth you don’t have to connect with your server always you just need to connect to push code when you complete the code.

Git uses some repositories management services like Github, Gitlab, Bitbucket etc.

GitHub:

GitHub may be the first name in open source repository hosting, but when it comes to private repo hosting services with additional bells and whistles aimed at enterprises, the game is not so cut and dry. All three vendors base their platforms on the Git distributed version control system. Each offers an on-premises solution for hosting reports inside your firewall — GitHub Enterprise, GitLab, and Bitbucket Server.

GitHub has a great, intuitive, informative and many familiar UI. If it is installed on your own servers, most developers will feel like home. It features LDAP integration, integration with JIRA and many other features important to today’s companies. You’ll hardly be in requirement of something that GitHub doesn’t do. On top of “enterprise features”, it has Gists (a way to share code snippets), ability to edit files directly from the browser (comes in handy when taking notes during a meeting), works with almost any cloud provider, has powerful search, and so on. It comes with its own Wiki and issue tracking. In many cases it is enough for many needs. If it isn’t, it can easily be connected with Jenkins, JIRA, Confluence, BugZilla, Trello and many other products. It can be used as a full package or in conjunction with others. Simply put, GitHub is the gold standard for code repositories.

GitLab:

GitLab do almost everything that GitHub does. Features are more or less the same (with very few exceptions) and UI is as great as the one from GitHub. If you go to Git Lab’s website you’ll have a hard time not thinking that you are in GitHub. One would need to look very hard to find something meaningful that GitHub has and GitLab doesn’t so let’s skip at what distinguishes GitLab from GitHub.

GitLab Community Edition is free and open sourced. That in itself gives it a huge boost when compared to GitHub Enterprise Edition (the only version that can be installed on premises). While there are some features available only in the enterprise edition, you might not need them and even if you do, it makes the decision easier knowing that you can start with the free version and upgrade to the paid one later on. It does not mean that GitHub doesn’t have a trial, It has. But it is for a limited time that might not be enough. With GitLab community edition you might be comfortable until the end of time or you might start with the enterprise edition right away. The good thing is that you have a choice that does not expire.

Pricing for the enterprise edition is reasonable (several times lower than with GitHub). Unlike GitHub, GitLab can be installed on virtually any hardware/OS/CM combination. Cloud providers, virtual machines, directly on the server, Linux, Windows, Puppet, Chef, and so on.They are even maintaining Docker images. Moreover, installation is simple. It shows the power of open source with infinite combinations community came up with and wrote about.

BitBucket:

Bitbucket is a web-based hosting service for source code and development projects that use either Mercurial (since launch) or Git (since October 2011) revision control systems that is owned by Atlassian. Bitbucket offers both commercial plans and free accounts. It offers free accounts with an unlimited number of private repositories (which can have up to five users in the case of free accounts) as of September 2010. Bitbucket integrates with other Atlassian software like JIRA Software, HipChat, Confluence and Bamboo.

It is similar to GitHub, which primarily uses Git. In September 2016, Bitbucket announced it had reached 5 million developers and 900,000 teams on its platform. Bitbucket has 3 deployment models: Cloud, Bitbucket Server and Data Center.

Below is short summary of The Key Differences : GitLab vs GitHub vs bitbucket

GitHub supports:
- The import of Git, SVN, HG, TFS.

GitLab supports:
-The import of Git.
-Easy import from other services GitHub, Bitbucket, Google Code, Fogbugz.

Bitbucket supports:
- The import of Git, CodePlex, Google Code, HG, SourceForge, SVN.

Summary

We can not suggest to use only specific Repository Management Services. But total depends on your custom requirement, your team knowledge.

--

--

Hitesh Ramoliya
Hitesh Ramoliya

Written by Hitesh Ramoliya

Entrepreneur | Director of Strategy, Innovation and Development

Responses (2)