Hello, my name is Ivan Gromakovskii, I am a software developer at Serokell. I’ve been working on several relatively big projects during the last few years where I was one of the main contributors at the project. Those projects include:

Two of them are hosted on GitHub and one is hosted on GitLab. I’ve been working on some other projects hosted on these platforms as well. These two platforms are among the most popular ones for Git repositories, and in this article, I want to compare them based on my experience. It should help people who are choosing between GitLab and GitHub for their new project or who consider switching from one platform to another. In general, all people who use GitLab or GitHub may discover some new features here.

Disclaimer: both GitHub and GitLab are actively developed and new features appear there from time to time. If some feature is present in only one platform, there are high chances it will be added to the other one at some point. So this comparison will inevitably become somewhat outdated sooner or later.

Our workflow

Let me briefly describe the way we write code and work with Git.

  • We have the main integration branch which is protected so that all code gets there via Pull Requests (PRs). Note: in GitLab, they are called Merge Requests (MR), I will be using “PR” for the rest of the article which means “MR” in the case of GitLab.
  • Usually we have CI which at least checks that code compiles and tests pass. It may perform other checks as well (e. g. correctness of links in the documentation).
  • Apart from that, all PRs must be reviewed by other developers.
  • A pull request can be merged only if all CI checks pass in the corresponding branch and if it is approved by a certain number of people (minimal number of approvals is usually 1 or 2).
  • We usually do not use the built-in issue tracker from GitLab or GitHub because we use a more advanced issue tracker. Some repositories do use it though. We also do not use features such as wiki.

Therefore, we are primarily interested in two things:

  • Browsing a repository. Even though it all can be done from one’s editor, terminal, file manager and so on, sometimes one may want to do it from browser for various reasons.
  • Pull requests: creation, code review, making and tracking changes, CI.

#github #gitlab #comparison

Comparison of GitLab and GitHub
1.55 GEEK