There’s a lot of content out there on GitHub, and the developer community seems to entirely love GitHub. It’s the software that helps us build more great software.
While GitHub is going mainstream and is now more and more morphing into the business life of software development, we see ourselves confronted with the question of GitLab vs GitHub. But what are the key differences?
Let’s take a closer look.
GitHub tutorial revisited.
A while ago we published thisGitHub tutorial on how to get started with GitHub by proving you with 10+ tips and hacks. Since then, we got a lot of GitHub-specific questions.
But we also got some questions asking about the key differences and similarities of GitLab and GitHub.
Both, GitLab and GitHub are web-based Git repositories. The aim of Git is to manage web development projects and files. As they change over time.
Git stores this information in a data structure called a repository.
( source )
Such a git repository contains a set of commit objects and a set of references to commit objects.
A git repository is the central location where developers store, share, test and collaborate on web projects.
Git made version control fun again.
GitHub projects can be made public and every publicly shared code is freely open to everyone. You can have private projects as well, though, they require a paid GitHub plan.
Public repositories on GitHub are often used to share open source software. I’m not digging into the basics of GitHub here, but GitHub also offers features such as issue tracking and GitHub pages.
Similar to GitHub, GitLab is a repository manager which lets teams collaborate on code. Written in Ruby, GitLab offers some similar features for issue tracking and project management as GitHub.
According to various sources and our own experience, we identified the following key differences you should know when making the decision: GitLab vs GitHub.
With GitLab you can set and modify people’s permissions according to their role. In GitHub you can decide if someone gets a read or write access to a repository. With GitLab you can provide access to the issue tracker (for example) without giving permission to the source code.
In GitLab you can attach any file to any issue. You simply can’t do that inside GitHub.
If you’re using GitHub issues you might think that it lacks some functionality. GitLab provides a powerful Issue Tracker that lets you change status and assignee for multiple issues at the same time.
GitHub Issues lets you do similar things. And it’s a great issue tracker too. However, I personally prefer the interface of GitLab’s issue tracker over GitHub. (Though this might be a personal matter.)
Work in Progress status
With GitLab, developers can label a project with “Work in progress” which gives collaborators a clear sign that the code is not finished. This might be a minor thing, though it can be really useful. This feature prevents code being merged with other code before it’s actually finished.
Both GitLab and GitHub offer a wide range of 3rd party integrations. Integrating your version control system with other application enriches your workflows and can boost productivity for your developers.
The GitHub community
GitHub positioned itself among its community of developers. And its popularity is mainly driven by the highly active GitHub community. So, if you’re looking for a like-minded community of developers, chances are high that GitHub is the better place to be.
GitLab Enterprise vs GitHub Enterprise
On an enterprise level, there are further factors that must be considered when making an informed decision of whether to use GitLab vs GitHub.
GitHub is super popular among developers. However, it seems that it hasn’t fully evolved as an enterprise software. Therefore, a lot of enterprises still have some concerns about using GitHub for professional use.
|released||September 2011||April 2008|
|Pricing||Unlimited public and private repositories / unlimited public and private collaborators||Free for public repositories / Paid plans for private repositories|
|Code review features||yes||yes|
|Bug & issue tracking||yes||yes|
|Private branch||yes||Yes (with paid plans)|
|Build system||yes||Yes (with 3rd party service)|
|Self-hosting||yes||Yes (with enterprise plan)|
|Popularity||100.000+ projects||35.000.000+ projects|
|detailled pricing||Free: gitlab.com / Free: GitLab Community Edition / $39 / Year: GitLab Enterprise||Free: public projects / $7/month: Personal plan / $25/month: organization plan / $2.500/year: Enterprise|
Wrapping it up.
GitLab is still the little brother of GitHub and has a long way to go if it wants to compete with GitHub on a user level. Nevertheless, GitLab is a great (and probably one of the best) alternatives to GitHub.
And best of all? It offers some nice features and benefits which a lot of enterprises might miss inside GitHub.
If you’re looking for further resources on GitLab vs GitHub, I recommend the following Quora thread .