GitLab: Was ist das und was kann das?

|
Entwickler und Programmierer kommen heute kaum noch um ein Version Control System (VCS) wie GitLab herum, wenn sie agil und effizient an Software- oder Webprojekten arbeiten wollen. Doch was genau ist GitLab? Welche Funktionen und Vor- und Nachteile bringt die Anwendung mit sich? 
 

Was ist GitLab?

GitLab wurde 2011 vom Ukrainer Dmitri Saparoschez in Zusammenarbeit mit Valery Sizov in der Programmiersprache Ruby, genauer gesagt Ruby on Rails, geschrieben. Nachdem Microsoft 2018 mit GitHub den größten Konkurrenten von GitLab gekauft hat, sind zahlreiche Nutzer zu GitLab gewechselt.

GitLab ist ein Version Control System (VCS). Es basiert vollständig auf Git, einem verteilten Versionierungssystem, das als Open-Source-Software zur Verfügung gestellt wird. Git ist das mit Abstand am weitesten verbreitete VCS der Welt. Hauptaufgabe der webbasierten Versionsverwaltung: alle Änderungen an Dateien und ihrem Quellcode speichern und dokumentieren, sodass diese jederzeit nachvollzogen werden können.

GitLab ist also insbesondere für Entwickler und Programmierer interessant und erleichtert ihre tägliche Arbeit. Bei Nutzung eines Versionsverwaltungssystems können mehrere Programmierer zeitgleich entwickeln, indem sie zum Beispiel an verschiedenen Features arbeiten. Auch wir bei Mittwald arbeiten aus genau diesem Grund mit GitLab. Uns hilft es vor allem bei der agilen und abteilungsübergreifenden Zusammenarbeit an verschiedenen Projekten. 

Die stetige Versionierung sorgt für die Protokollierung sämtlicher Änderungen und stellt sicher, dass Arbeiten nicht verloren gehen oder versehentlich überschrieben werden. Am Code vorgenommene Änderungen können nicht nur überwacht, sondern bei Bedarf auch rückgängig gemacht werden.

Mittwald erklärt GitLab in seinem Blog.

Wie funktioniert GitLab?

GitLab ist ein webbasiertes VCS, das aber auch auf dem eigenen Server gehostet werden kann. Die dort angelegten Projekte werden in digitalen Archiven organisiert, die sich Repositories (Repos) nennen. Ein Repository beinhaltet alle Bestandteile eines Projekts, also zum Beispiel sämtliche dazugehörigen PHP-, JavaScript-, HTML- und CSS-Dateien.

Alle Projektbeteiligten können sich eine Arbeitskopie (Working Copy) des Repositorys auf ihren Rechner herunterladen (auschecken). Nach der Bearbeitung der Kopie werden die Dateien wieder ins Repository hochgeladen (eingecheckt). Mittels Commit können die Änderungen zu dem Repository hinzugefügt werden. GitLab kümmert sich um die Dokumentation der Änderungen und ermöglicht zum Beispiel auch die Vergleichbarkeit der Versionen.

Eine wesentliche Funktion ist das Branching, das bei Git besonders leicht und schnell vonstattengeht. Branching bedeutet, dass Programmierer einen separaten Arbeitszweig (Branch) erstellen können, der von der Hauptlinie der Entwicklung abzweigt. Diese kann als neuer Kontext betrachtet werden, sodass in einem solchen Zweig zum Beispiel an einem neuen Feature gearbeitet werden kann, ohne dass die Hauptlinie dadurch beeinträchtigt oder gar beschädigt wird.

Funktionen von GitLab im Überblick:

  • Code Review
  • Bug Tracking
  • persönliche und private Branches
  • mehrere Git Repositories verwaltbar
  • Hochverfügbarkeit im active/active Cluster möglich
  • Code Snippets
  • Access Control
  • Issue Tracking
  • Web Hooks
  • integrierte und kostenlose Continuous Integration/Delivery (CI/CD)
  • Wiki

Welche Lizenzen von GitLab gibt es?

GitLab basiert auf einem offenen Kerngeschäftsmodell. 2013 wurde die erweiterte Enterprise Edition eingeführt, sodass es nun zwei Lizenzmodelle gibt:

  • CE: Community Edition
  • EE: Enterprise Edition

Die Community Edition wird unter der MIT-Lizenz vertrieben. Die Enterprise Edition basiert auf der Community Edition und verwendet folglich denselben Kern, der jedoch um zusätzliche Funktionen ergänzt wird. EE unterliegt einer proprietären Lizenz. Für beide Versionen gilt jedoch, dass der gesamte JavaScript-Code Open Source ist.

Vor- und Nachteile von GitLab

Vorteile:

  • unbegrenzte Anzahl privater und öffentlicher Repositories
  • inkl. Container Registry zur Docker-Image-Verwaltung
  • CI/CD-Tools sind bereits kostenfrei integriert
  • leicht bedienbares Benutzerinterface
  • selbstorganisiertes Hosting möglich
  • hervorragende mobile Nutzbarkeit
  • zahlreiche Statistiken zu Projekten abrufbar
  • umfangreiche Benutzer- und Rechteverwaltung
  • umfassende Wiki-basierte Dokumentation
  • bessere Sicherheitsvorkehrungen als die Konkurrenz

Nachteile:

  • Issues sind nicht in mehreren Repositories trackbar
  • Server sind weniger stabil als bei GitHub

Fazit zu GitLab

Mit GitLab können insbesondere Programmiererteams kollaborative Software- und Webprojekte planen, koordinieren, testen, bereitstellen und überwachen. Alle Beteiligten können sicher am Code schreiben und diesen verwalten, ohne dabei den Workflow zu stören – unabhängig davon, ob es sich um eine Agile-, Wasserfall- oder Konversationsentwicklungsmethode handelt.

GitLab bietet für Buildpacks bis CI/CD zahlreiche Anpassungsmöglichkeiten. Der gesamte Workflow lässt sich auf Wunsch automatisieren. Der Code ist sowohl in der Community- als auch in der Enterprise-Version Open Source. Schon die kostenlose Version ist sehr umfangreich und leistungsstark.

Nutzt ihr GitLab auch oder seid ihr eher Verfechter von GitHub? Wir lesen gerne in den Kommentaren von euch. ;-) 

Ähnliche Artikel:

Hosting

Willkommen in einer neuen Hosting-Welt

Performanter, übersichtlicher, individueller: Unsere neue Tarifwelt ist da! Was alles neu bei Mittwald ist, erfährst du hier im Blog.

Hosting

CMS-Hosting: zugesicherte Performance, zeitsparende Tools
& hohe Flexibilität

Auf der Suche nach dem perfekten Hosting für dein CMS? Unsere neuen Tarife bieten dir Top-Performance, zeitsparende Tools u.v.m. Mehr Infos gibt's hier.

Person schreibt an Laptop
Webentwicklung

Einführung in Git (Teil 1): Versionsverwaltung

In einem Blog-Beitrag geht Mittwald darauf ein, was Git anderen Versionsverwaltungssystemen (kurz SCM-Systemen) wie beispielsweise Subversion voraus hat und wie man damit arbeitet.

Zwei Personen stehen vor Laptop und weisen auf Screen
Webentwicklung

Einführung in Git (Teil 2): Branching und Merging

Im zweiten Teil der Git-Einführung konzentriert sich Mittwald auf das Arbeiten mit Zweigen.

Mitarbeiter sitzen beieinander und arbeiten an Laptops
mittwald

Versionskontrolle leicht gemacht: git

Wenn viele Entwickler an einem Projekt arbeiten, ist es wichtig den Überblick zu behalten. Mit dem Versionskontrollsystem git ist das kein Problem, denn das Programm bietet viele praktische Funktionen

Kommentare

Benjamin am
Als Microsoft GitHub gekauft hat, bin ich mit allen meinen Projekten zu Codeberg (einer Gitea Instanz) gewechselt.
Mittlerweile habe ich nur noch meine privaten Projekte auf Codeberg.org und alles andere auf einer selbstgehosteten GitLab Instanz von Stuxhost.

Ich finde es auch höchst "interessant" was GitHub jetzt mit Copilot macht.
Kai am

Lässt sich GitLab per Konsole in jedem Account uneingeschränkt installieren?

Tobias Hüske am
Hallo Kai, GitLab ist zum aktuellen Zeitpunkt leider noch nicht in unseren Hostingtarifen nutzbar. Wir entwickeln gerade für den Space-Server bzw. proSpace (die neuen Tarife im mStudio) ein Container-Hosting (vgl. https://www.mittwald.de/roadmap), auf dem GitLab betrieben werden kann. Das wird jedoch noch einen Moment dauern. Behalte doch die Roadmap mal im Auge! :-)
 

Viele Grüße,
Tobias