GitHub VS GitLab
Software engineers use Version Control repository management systems a lot. They have been a key component in the software development workflow. It makes life way easier to have one copy of an entire project up on a repository rather than each of your team member having individual copies you have to keep matching up to keep up with continuous integration. In the last few years, GitHub and GitLab positioned themselves as amazing work tools for developers.
Let’s dive right in to understand what Git is and how GitHub and GitLab work.
Both, GitLab and GitHub are web-based Git repositories.
The aim of Git is to manage software development projects and related files, as they are continuously changing. Git stores this information in a data structure called a repository.Such a git repository contains a set of commit objects and a set of references to commit objects.A git repository is a central place where developers store, share, test and collaborate on web projects.
Software Projects and their related files are continuously changing and git aims to manage that exactly. Git stores this information in data structures called repositories. Git repositories consists of commit objects and references to-and-from them. A git repository therefore ends up the place where software engineers share, test, enhance, store and collaborate.
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. Besides the basic code repository, GitHub can be used for issue tracking, documentation and wikis.
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.
With the latest release of GitLab, GitLab took a major leap forward from code management, to deployment and monitoring. GitLab calls it Complete DevOps. They aim for the entire software development, deployment and DevOps market.
GitHub offers this too. You can set up projects underneath a github organization and it allows you to add stories and go work on from there.
Being an active user who is involved in agile software development I use GitHub and I am used to using third party apps such as Zenhub’s extension to go with my repos attached to my GitHub repos and not just GitHub’s project tracking tools.
Personally I have never worked on a project yet where I haven’t used Zenhub and it makes my and our team’s life way better. You have a huge team of like 8 or even 14+ working on the same repository and project? How would you know who’s at which branch and who’s working on what? You need to utilize tools to make sure everything is on the board so that everyone can collaborate whenever it is required. Having these mean now you now can come to aid when someone needs it being stuck on one bug for like days now or even go for that congratulatory hug you want to give to your teammate when that big story you all dreaded finally got put to the “closed” section.
Key differences and similarities: GitLab vs GitHub
Authentication Levels
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. This is obviously great for larger teams and enterprises with role-based contributors.
Built-in CI / CD & going Beyond CD
One of the big differences between GitLab and GitHub is the built-in Continuous Integration/Delivery of GitLab. CI is a huge time saver for many development teams and a great way of QA (nobody likes pull requests that break your application). GitLab offers their very own CI for free. GitHub offers various 3rd party integrations — such as Travis CI, CircleCI or Codeship — for running and testing your code. However, there’s no built-in CI solution at the moment.
Issue Tracking
GitLab as well as GitHub provide a simple issue tracker that lets you change status and assignee for multiple issues at the same time.
Import & Export
When thinking about moving to GitLab or GitHub, you should also consider the setup costs and resources needed for getting started. In that regard, the topic of available import and export features is pretty important. GitLab offers a detailed documentation on how to import your data from other vendors — such as GitHub, Bitbucket — to GitLab.
GitHub on the other hand, does not offer such detailed documentation for the most common git repositories. However, GitHub offers to use GitHub Importer if you have your source code in Subversion, Mercurial, TFS and others. Also when it comes to exporting data, GitLab seems to do a pretty solid job, offering you the ability to export your projects including the following data:
- Wiki and project repositories
- Project uploads
- Configuration including web hooks and services
- Issues with comments, merge requests with diffs and comments, labels, milestones, snippets, and other project entities
GitHub, on the other hand, seems to be more restrictive when it comes to export features of existing GitHub repositories.
Integrations
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 and your non-developers. I
The GitHub community
GitHub positioned itself among its community of developers. And its popularity is mainly driven by the highly active GitHub community of millions of developers. On the other hand, GitLab undertook some great activities, such as hosting community events and connecting open source contributors. If you’re looking for the biggest community of developers, chances are high that GitHub is the better place to be.
GitLab Enterprise vs GitHub Enterprise
On an enterprise level, you should consider further factors when making an informed decision of whether to use GitLab vs GitHub. GitHub is highly popular among developers, and over the last few years it gained popularity among larger development teams and organizations too. On the other hand, GitLab is pretty strong on enterprise features, too. With different enterprise plans available, GitLab is particularly popular among larger development teams. Here is, how GitLab and GitHub compare on pricing. While GitHub’s enterprise plan starts at 2,500 USD per 10 users per year (= 250 USD per user), GitLab’s enterprise starter plan is 39 USD per user/per year.
Wrapping up here’s their key differences.
