We covered the basics of the web-based GitHub repository in our article What Is GitHub and Why Should Your Digital Team Use It? But what is GitLab, and what makes it different from GitHub?
Both are web-based Git repositories that have streamlined web development workflows. They provide centralized, cloud-based locations where teams can store, share, publish, test, and collaborate on web development projects. Git revolutionized version control—crucial when you have more than one developer working on a project—and GitHub added a staging platform to share prototypes and open-source projects.
Now, GitLab is bringing even more to the table. Read on to explore some of the key differentiators of GitLab and how it’s become a next-level platform for teams who want even more security and flexibility with their projects.
Like GitHub, GitLab is a web-based repository manager that lets teams collaborate on code, duplicate code to safely create and edit new projects, then merge finished code into existing projects. GitLab is written in the Ruby programming language and includes a Wiki and issue-tracking features. It has different versions: GitLab Community Edition (CE), Enterprise Edition (EE), and a GitLab-hosted version, GitLab.com. It’s got over 1400 contributors and is used by major organizations like Alibaba, NASA, CERN, and more.
Its permissions, branch protection, and authentication features are what really make it stand out. Teams can secure projects on a more granular level, and projects are kept even safer while they’re being worked on, which we cover in more detail below.
The GitLab Advantage
GitLab has everything GitHub has, and more—giving teams increased control over their repositories. Its extra features include:
- It’s free and open-source.
- Different hosting options: Self-hosted with the Core, Starter, Premium and Ultimate plans, and GitLab hosted SaaS options with the Free, Bronze, Silver and Gold plans.
- A convenient user interface enables users to access everything from one screen: projects, latest projects, users, latest users, groups, and stats.
- Settings allow users to control whether a repository is public or private.
- “Snippet support” lets users share small pieces of code from a project, without sharing the whole project.
- Protected branches are a new way to keep code safe. They allow users to set higher permissions on a project, so only certain people are able to push, force push, or delete code in a branch.
- Authentication levels take this security a step further, allowing users to give people access beyond a read/write level. For example, you can give a team member access to issue tracking without having to give them access to the code itself.
- Improved milestones enable you to set milestones at a group level, not just a developer-specific level. Developers can get insight into the whole team’s scope and view the entire project’s milestones, not just their own.
- With the “Work in Progress” status, developers can label a project “WIP” to let collaborators know that the code is unfinished. This prevents it from accidentally getting merged with other code before it’s finished.
- You can attach files like comments to any communications in GitLab.
- Kubernetes cluster monitoring with the Ultimate, Silver, and Gold hosting plans
“INNERSOURCING” WITH GITLAB
One of GitLab’s most exciting capabilities is its support for a collaboration technique known as “innersourcing.” Innersourcing is a term coined to describe a way companies can tap development resources who otherwise wouldn’t know about a project because it’s outside of their scope.
Because developers often work in silos, a GitLab repository enables them to easily browse and share projects active in their company. Anyone logged on to the GitLab server can access projects in that company. It’s a new way organizations can benefit from every developer on the team by sharing skills and bandwidth conveniently and securely.