GitLab vs GitHub - Which Repository Service is right for you
Offering largely the same services as far as Version Control Systems go, how do you choose which one is right for you? Here's our take on GitLab vs GitHub
GitLab and GitHub offer a number of service which are similar and can get difficult to differentiate. What are the particular areas of distiction between the two and which one is more suited for you? We had a discussion around this topic going on on Remote Clan and our Clan members shared their opinions on GitLab vs GitHub with us. The below comparsion is largely inspired from their points of view.
Before starting on which one among GitHub or GitLab is right for you, it is necessary to understand what they are first. GitHub is a tool which allows you to host your website online in a secure environment. You can then review, manage as well as share this with your friends or publicly. With over 80 million projects, it boasts of being the largest code respository in the world. This has features for collaboration with other users of GitHub and issue tracking and is used widely for open source projects. Launched first in 2008, and being the largest repository host worldwide, is used as a central place for collaboration by most of the developers from across the globe.
GitLab was launched in 2014 and is more focused on DevOps operations and Continuous Integration/ Continuous Deployment pipeline features. It is used by a large numbers of well known organizations across the world and has most of the features similar to GitHub. In addition to this, it also has a feature that lets you import the files from other Git repositories. GitLab comes in two types of services. One in the publically available cloud service, or gitlab.com and the other one is a cloud service for SESYNC science teams. The latter is meant for hosting private projects that you can share with others who make use of the SESYNC service.
Differences in the features offered by GitLab and GitHub
GitLab offers four pricing tiers. These are Core - for a single dev, Starter - for a single team, Premium - for multiple teams and Ultimate - for strategic organizational usage. These are priced at priced at $0, $4, $19 and $99 respectively, per user, per month respectively and having a good addition of features at the higher costs.
GitHub also comes in four plans. They have a basic version, a Team version with advanced collaboration and support, enterprise and GitHub one. This does happen to be a little cheaper as the plans are priced at $0, $4, $21 and a custom price based on the requirements, per user per month.
One of the main difference between GitLab and GitHub and the reason that Gitlab is widely used for is integration. GitLab uses the own tools and has fully built-in continuous integration.
GitLab has a community of 3000+ contributors. They have a good number of resources. Also, a community forum where you can communicate with other members and learn all about DevOps. They also have a Heroes Program, Hackathons and Meetups which can make the community experience really interesting.
As already stated above, GitHub hosts an extremely large community of users you can communicate and collaborate with. The posts are divided into various different categories. This helps in finding the anwswers to exactly the question you want to.
As given in the introduction, GitLab is a complete DevOps platform, delivered as a single application. This can be used from project planning and source code management to CI/CD and monitoring.
GitHub is a development platform. From open source to business, it lets you host and review code, manage projects, and build software.
Import and Export of Data
GitLab has a detailed documentation on how you should import and export data from external vendors. It also allows users to export projects and project repositories, webhooks and services, milestones, issues, etc.
When it comes to import and export of data, GitHub is more restrictive. It also does not have detailed documentation about the same. Though, there is a tool which is called GitHub Importer which can be used for the purpose.
In GitLab, the issues can be closed automatically. This is because the issue tracker lets the users to associate issues with a pull request.
Similarly, GitHub also allows pulling of requests so that the issues that are raised are automatically closed when they are merged to another repose.
GitLab allows the developer to the authority to decide who accesses the repository and who doesn't.
GitHub also allows this based on the role of the person accessing the repository.
Locating a repository
Making use of the free plan, it isn't possible to locate a repostiory inside GitHub. GitLab on the other hand does allow this.
Both, GitLab as well as GitHub have good and extensive documentation. This is available in a well organized manner and is easy to refer to.
What our community has to say about the two
Comparing GitLab vs GitHub, our members, a lot of who have worked in Scrum teams (read more on it here) were quite opinionated.
Diwakaran says "Back then, GitHub did not have private repos for collaboration for free accounts. So Gitlab looked good for pet projects. But now with Microsoft support for Github, and unlimited private repos with collaboration, along with few Azure combo (Azure static webapps with Github), GitHub looks better."
Having been an individual contributor as well as a manager, Boris talks about his experience comparing GitLab vs GitHub. "The transition from GitHub to GitLab was surprisingly easy - it was maybe one day of lost productivity. There was a tool to import everything from GitHub into GitLab. And we kept the GitHub account just in case, with just 1 user on the free plan. GitLab has a lot of additional features - which causes them to eat the market share of GitHub rather fast. I'm not sure if was just because of the free pricing tier, or also the additional features. I guess both of them were the reason.
GitLab seems to be a good choice for smaller teams - due to being free for smaller teams, and having additional features for free. But GitLab's pricing scales aggressively for bigger companies, so this is something to keep in mind if you expect to be a big company in the next 1-2 years."