GitLab vs GitHub: Key differences & similarities
GitLab vs GitHub: Key differences & similarities
Gitlab and Github : Which one? is often times a source of confusion.
Version control hosting solutions are products that host multiple code repositories in the cloud and integrate with, and often provide, online tools that enhance the use of version control systems.
Both, GitLab and GitHub are web-based Git repositories.
- GitHub is a publicly available, free service which requires all code (unless you have a paid account) be made open. Anyone can see code you push to GitHub and offer suggestions for improvement. GitHub currently hosts the source code for tens of thousands of open source projects.
- GitLab is a github like service that organizations can use to provide internal management of git repositories. SESYNC has setup a GitLab server for our researchers and staff to better collaborate.
The aim of Git is to manage software development projects and its files, as they are changing over time. 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.
In a NutShell
As of now, both github.com and gitlab.com have (almost) similar features. Only naming of features may differ a little bit.
- The main advantage of GitLab is its open source nature, which allows you to run GitLab on your own servers.
- GitLab allows unlimited private repositories for free whereas for GitHub, it is not free.
- GitLab is newer than GitHub, so naturally it is a little less popular than GitHub.
- GitLab has its own CI software (called GitLab CI), which all removes your reliance on external service like Travis.
GitLab has everything that GitHub has, and giving teams increased control over their repositories. Its extra features include:
- A convenient user interface enables Gitlab users to access everything from one screen: projects, latest projects, users etc.
- “Code Snippet” allows users to share a small chunk of code from a project, rather than sharing the whole project.
- Protected branches, this new way of keeping code safe allows only specific people to push, force push or delete in a branch.
- Authentication levels, this allows users to give permissions to other users/team members beyond read/write level.
- Improved milestones allow users to set milestones at a group level, rather than just a developer-specific level.
- The “Work in Progress” status prevents from merging of code with the unfinished work.
- Attach files like comments to any communications in GitLab.
- “INNER SOURCING” WITH GITLAB- This exciting collaboration feature enables developers to easily browse and share projects active in that company and can contribute by sharing skills in other projects of the company as well.
Feature Comparison
1. Authentication Levels
Both allow users to assign different permissions to modify people’s role.
2. 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. GitLab offers their very own CI for free.
3. Bug 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.
4. Integrations
Both GitLab and GitHub offer a wide range of 3rd party integrations
Comparison by Gitlab
References: