If you are involved in software development, you need to find a good version control system (VCS) for your development team as it helps make sure that you do not commit incorrect code and also allows you to refer to the code that you have written in the past. VCS provides an easy to follow history of changes that have been made to the code. There are many free version control systems like Git, Mercurial and Subversion, but many of these are difficult to use. In this blog, you will learn the similarities and differences between the three popular Git hosting platforms and will also figure out which one suits you the best.
Let's start with
Git is a useful DevOps tool used for source code management. It is a free and open-source version control system, used to track changes and make working with multiple developers easier. In addition to being good at merging and branching, Git is efficient because it distributes, which mean developers can commit changes without connecting to a central server. Git's popularity comes from its simplicity, efficiency, and low barrier of entry compared to other version control systems like Subversion or Perforce.
Another reason for Gits popularity is Github. Github launched in 2008. It was one of the first Git hosting platforms. The open source community started to use it for code sharing. It made Github an instant success. So the platform started to gain lots of users today. Github had more than 28 million users and hosts about 57 million repositories. Recently, Microsoft has acquired Github for a price of 7.5 Billion dollars. The acquisition has stirred up controversy in the open source community. A lot of people are worried that Github will lose its open source roots so many are looking at alternatives like Gitlab.
GitHub user dashboard
Similar to Github, Gitlab is a git based repository hosting platform. It was launched in 2011. From the beginning, Gitlab wanted to distinguish itself from Github, so it created a single product for the entire DevOps lifecycle. In Gitlab, tools like Issue trackers, continuous integration and continuous delivery are part of the product. Gitlab provides a single interface to the whole DevOps cycle. Today, Gitlab is used by more than 100,000 organizations. Organizations like IBM, Sony, NASA and Alibaba are using Gitlab.
GitLab user dashboard
BitBucket is another online source code hosting service. BitBucket was launched in 2008. During that time it worked only with Mercurial (a free distributed version control system), but it also has been using Git since October 2011 after being acquired by the Atlassian. It had its own advantages since Atlassian develops mainstream software tools like Jira, Trello and Confluence. Having great integration with such tools has been a great advantage for BitBucket.
BitBucket user dashboard
The following similarities and differences are going to be based on various functionalities across the platform.
|Free Private Repositories||Provides free private repositories to its users||Provides free private repositories to its users||Provides free private repositories to its users|
|Free Public repositories||Provides free public repositories to its users||Provides free public repositories to its users||Provides free public repositories to its users|
|Integrated CI functionality||The integrated CI functionality is not provided by GitHub. One has to use a third party tool for this function||The integrated CI functionality is provided by GitLab||The integrated CI functionality is provided by BitBucket|
|Navigation usability||The navigation usability is provided in the GitHub platform||The navigation usability is provided in the GitLab platform||BitBucket does not provide navigation usability|
|File storage||GitHub has the capacity to store large files||GitLab has the capacity to store large files||Bitbucket has the capacity to store large files|
|Open source||GitHub is also not an open source platform. It provides limited features in the free version||GitLab is an open source platform. Users can access all the features at zero-cost||Bitbucket is not an open source. The platform provides some features, but is not wholly a open-source|
|Integration||GitHub can be integrated with third party tools||Gitlab can be integrated with third party tools||BitBucket can be integrated with third party tools|
|Project Analytics||GitHub does not have such feature||GitLab allows the users to see the Project analysis and burndown chart||BitBucket allows the users to see the Project analysis and burndown chart|
|Free||Unlimited public/private repositories, 2,000 automation minutes/month (Free for public repositories), 500MB of Packages storage (Free for public repositories), New Issues & Projects (beta), Community support||supports all DevOps stages, Own GitLab CI runners, Free static websites, 400 CI/CD minutes per month||5 users, 50 mins/month, 1GB Git Large file storage, Jira and Trello integration, CI/CD, Unlimited pull request reviewers, code insights (3 integrations), 10 deployment environments|
|Premium||Protected branches, Multiple reviewers in pull requests, Draft pull requests, Code owners, Required reviewers Pages and Wikis, 3,000 automation minutes/month (Free for public repositories), 2GB of Packages storage (Free for public repositories), Web-based support||Faster code reviews, Advanced CI/CD, Enterprise agile planning, release controls, Self managed reliability, 10,000 CI/CD minutes||Unlimited users, 2500 mins/month, 5GB Git Large file storage, Unlimited code insights, 50 deployment environments|
|Enterprise||Automatic security and version updates, SAML single sign-on, Advanced auditing, GitHub Connect, 50,000 automation minutes/month (Free for public repositories), 50GB of Packages storage (Free for public repositories)||Advanced security testing, cloud native security, Compliance, Portfolio management, value stream management, free guest users, 50,000 CI/CD minutes per month||Unlimited users, 3500 mins/month, 10GB Git Large file storage, Unlimited code insights, 50 deployment environments, enforced merge checks, deployment permissions, IP allow listing, required 2 step verification|
Now that you have understood the platforms, lets see which one suits for you and your company.
If you are going to work only on other open source projects, GitHub would be a good choice since one can upload their own projects and it also acts like an online portfolio. While GitLab can be used if you are an enterprise. It has free private and public repositories which doesn't restrict on the number of users. If you are someone who wants to host multiple repositories and work with many colleagues, then GitLab might be a good choice for you.
BitBucket is the most popular among many organizations because of its user interface. It also has mercurial support. If you are an organization ans you want to host your project, BitBucket would be a great choice.
But honestly, this question has to be answered by you. It depends on your requirements, team size and your niche.
For eg. If your are a software company that deals with web development, you would need a good integration with a project management tool, bug reporting tool, text editor tool etc. Check if you can integrate your project management tool like Trello and your bug reporting tool like Disbug to your repository and then make a move.