GitLab ist ein beliebtes Ver­si­ons­kon­troll­sys­tem (VCS), das vor allem in der Software-Ent­wick­lung zum Einsatz kommt. Die web­ba­sier­te Software wurde 2011 von Dmitri Sa­pa­ro­schez in der Pro­gram­mier­spra­che „Ruby on Rails“ ge­schrie­ben und ver­öf­fent­licht und gilt in Ent­wick­ler­krei­sen in­zwi­schen als un­ver­zicht­ba­res Tool.

Der Haupt­vor­teil von GitLab ist, dass es die team­über­grei­fen­de, agile Software-Ent­wick­lung erheblich er­leich­tert. Mehrere Ent­wick­ler können gleich­zei­tig an einem Projekt arbeiten und bei­spiels­wei­se ver­schie­de­ne Features parallel be­ar­bei­ten. Durch die kon­ti­nu­ier­li­che Pro­to­kol­lie­rung aller Vorgänge wird si­cher­ge­stellt, dass Än­de­run­gen am Code nicht verloren gehen oder aus Versehen über­schrie­ben werden. Außerdem lassen sich bereits getätigte Än­de­run­gen mühelos rück­gän­gig machen.

GitLab basiert auf der weit­ver­brei­te­ten Ver­si­ons­ver­wal­tungs-Software Git. Git ist als Open-Source-Software frei zu­gäng­lich und zählt zu den am häu­figs­ten genutzten Ver­si­ons­kon­troll­sys­te­men überhaupt. GitLab zählt zu den pro­mi­nen­tes­ten GitHub-Al­ter­na­ti­ven (als GitHub 2018 von Microsoft über­nom­men wurde, wech­sel­ten zahl­rei­che Benutzer zu GitLab).

Wie funk­tio­niert GitLab?

GitLab ist eine web­ba­sier­te Anwendung mit einer gra­fi­schen Be­nut­zer­ober­flä­che, lässt sich aber auch auf dem eigenen Server in­stal­lie­ren. Das Kernstück von GitLab bilden Projekte, in denen der zu be­ar­bei­ten­de Code in digitalen Archiven, den so­ge­nann­ten Re­po­si­to­ries, ge­spei­chert wird. In diesen Pro­jekt­ver­zeich­nis­sen finden sich sämtliche Inhalte und Dateien eines Software-Projekts, also z. B. Ja­va­Script-, HTML-, CSS- oder PHP-Dateien.

GitLab funk­tio­niert grund­sätz­lich fol­gen­der­ma­ßen: Alle Be­tei­lig­ten an einem Projekt laden sich zunächst eine eigene Kopie des zentralen Re­po­si­to­rys auf ihren Rechner. Än­de­run­gen am Code werden in der Folge immer zunächst mittels so­ge­nann­ter Commits vor­ge­nom­men. Nach der Be­ar­bei­tung werden die Än­de­run­gen dann im Haupt-Re­po­si­to­ry ein­ge­speist.

Ein weiteres wichtiges Feature ist das Branching. Dabei können Nutzer einen „Zweig“ erstellen, der vom ei­gent­li­chen Hauptteil des Codes abzweigt und un­ab­hän­gig davon be­ar­bei­tet werden kann. Diese Funktion eignet sich vor allem dann, wenn neue Funk­tio­nen ein­ge­führt und getestet werden sollen, ohne dabei die Ent­wick­lung der Haupt­li­nie zu be­ein­träch­ti­gen. GitLab ist dank ein­ge­bau­ter Con­ti­nuous Delivery und Con­ti­nuous In­te­gra­ti­on gut für die Arbeit mit Branches geeignet und bietet ver­schie­de­ne nützliche Features wie Merge-Requests und das Erstellen von Forks. Daher zählt die Software zu den be­lieb­tes­ten Con­ti­nuous-In­te­gra­ti­on-Tools .

Features von GitLab im Überblick

Zu den wich­tigs­ten Features von GitLab gehören:

  • Be­nut­zer­freund­li­che Ober­flä­che
  • Branches können privat bleiben oder öf­fent­lich geteilt werden
  • Ver­wal­tung von mehreren Re­po­si­to­ries möglich
  • Code-Review
  • In­te­grier­tes Bug- und Issue-Tracking
  • In­te­grier­te, kos­ten­lo­se Con­ti­nuous In­te­gra­ti­on/Delivery (CI/CD)
  • Projekt-Wikis
  • Einfache Er­stel­lung von Code-Snippets, mit denen sich Teile des Codes teilen lassen

Lizenz und Nut­zungs­mo­del­le von GitLab

GitLab basiert auf einem offenen, frei zu­gäng­li­chen Quellcode. 2013 wurde zu­sätz­lich eine eigene En­ter­pri­se-Edition für Un­ter­neh­men ein­ge­führt, weshalb mitt­ler­wei­le zwei Nut­zungs­mo­del­le zur Verfügung stehen:

  • GitLab CE: Community-Edition (kostenlos)
  • GitLab EE: En­ter­pri­se-Edition (kos­ten­pflich­tig)

Beide Versionen basieren auf der Open-Source-Lizenz MIT. Die En­ter­pri­se-Edition hat im Vergleich zur kos­ten­lo­sen Community-Edition einige zu­sätz­li­che Funk­tio­nen. GitLab bietet hierbei drei ver­schie­de­ne Abo-Modelle an, je nach Umfang der ge­wünsch­ten Zusatz-Features.

Zudem lässt sich die En­ter­pri­se-Edition kostenlos nutzen, dabei erhält man al­ler­dings nur die Basis-Funk­tio­nen aus der Community-Edition. Dieses Modell eignet sich, wenn man eventuell zu einem späteren Zeitpunkt die En­ter­pri­se-Variante in­stal­lie­ren möchte, da der Umstieg nur einen Mausklick erfordert. Im Un­ter­schied dazu ist es we­sent­lich zeit­auf­wen­di­ger, von der Community- auf die En­ter­pri­se-Edition um­zu­stei­gen.

GitLab in­stal­lie­ren: So funk­tio­niert’s

Für die Nutzung von GitLab empfiehlt sich grund­sätz­lich eine Linux-Umgebung. Wie Git ist die GitLab-Software von Haus aus auf Linux zu­ge­schnit­ten. Eine In­stal­la­ti­on und Nutzung unter Windows ist hingegen nur mit Ein­schrän­kun­gen möglich – hierfür kann eine virtuelle Maschine verwendet werden, die eine Linux-Umgebung auf dem Windows-Rechner simuliert. Un­kom­pli­zier­ter ist die In­stal­la­ti­on des so­ge­nann­ten GitLab-Runners, der auch benötigt wird, um die Con­ti­nuous In­te­gra­ti­on von GitLab zu nutzen.

GitLab selbst hosten oder Cloud-Lösung nutzen

Die In­stal­la­ti­on von GitLab auf dem eigenen Server stellt Anwender mit Linux-Vor­kennt­nis­sen zwar vor keine größeren Her­aus­for­de­run­gen, ist al­ler­dings relativ zeit­auf­wen­dig. Neben der In­stal­la­ti­on selbst muss Zeit für die Kon­fi­gu­ra­ti­on und für re­gel­mä­ßi­ge War­tungs­ar­bei­ten ein­ge­plant werden.

Wer sich das sparen möchte, kann GitLab auch als Software as a Service (SaaS) auf einem Cloud-Server in­stal­lie­ren und verwenden (wird von diversen Providern angeboten). So lässt sich die Software innerhalb kürzester Zeit, ohne auf­wen­di­ge In­stal­la­ti­on und bereits fertig kon­fi­gu­riert einsetzen. Der GitLab-Runner wird in der Regel mit­in­stal­liert, sodass man direkt loslegen kann.

Tipp

IONOS bietet leis­tungs­star­ke und günstige Cloud-Server und virtuelle Server an, mit denen Sie in kürzester Zeit Ihre eigene virtuelle In­fra­struk­tur wunsch­ge­mäß ein­rich­ten. Die Server laufen mit allen gängigen Linux-Dis­tri­bu­tio­nen (Ubuntu, Debian) sowie optional mit Windows.

GitLab auf Linux-Server in­stal­lie­ren

Um GitLab auf einem Linux-Server zu in­stal­lie­ren, benötigen Sie zunächst die Git-Software. Wie Sie Git auf dem Server in­stal­lie­ren, erklären wir in unserem Git-Tutorial. An­schlie­ßend sollten Sie das GitLab-Omnibus-Package von der of­fi­zi­el­len GitLab-Website her­un­ter­la­den. Dieses Paket enthält alle be­nö­tig­ten Dateien und wird für die In­stal­la­ti­on von GitLab in Linux empfohlen.

Re­po­si­to­ry ak­tua­li­sie­ren

Melden Sie sich an­schlie­ßend als Root-Benutzer am Server an und ak­tua­li­sie­ren Sie das Re­po­si­to­ry (hier von Ubuntu), um alle not­wen­di­gen Pakete für GitLab zu erhalten. Dazu verwenden Sie diese Befehle:

sudo ssh root@GitLabServer
sudo apt-get update

An­schlie­ßend in­stal­lie­ren Sie die Pakete wie folgt:

sudo apt install curl openssh-server ca-certificates postfix

Während der In­stal­la­ti­on von Postfix erscheint ein Kon­fi­gu­ra­ti­ons­bild­schirm. Wählen Sie hier die Option „Internet Site“ und geben Sie den Namen der Server-Domäne ein, die Sie für das Versenden und Empfangen von E-Mails verwenden.

GitLab in­stal­lie­ren

Im nächsten Schritt in­stal­lie­ren Sie das Omnibus-Paket von GitLab. Dazu müssen Sie zunächst das „GitLab Package Re­po­si­to­ry“ mit folgendem Befehl hin­zu­fü­gen:

curl https://packages.GitLab.com/install/repositories/GitLab/GitLab-ee/script.deb.sh | sudo bash

Danach in­stal­lie­ren Sie GitLab mit dem Befehl apt. In diesem Beispiel-Code wird GitLab in der Community Edition (CE) in­stal­liert:

sudo apt install GitLab-ce

Nach der Eingabe lädt der Server das GitLab-Paket selbst­stän­dig herunter und in­stal­liert es. Nach be­stä­tig­ter In­stal­la­ti­on sollten Sie noch die Haupt-URL kon­fi­gu­rie­ren, mit der Sie auf den GitLab-Server zugreifen.

Ändern Sie die URL "https://GitLab.example.com" in die URL, die Sie tat­säch­lich verwenden. Dazu gehen Sie in das Ver­zeich­nis /etc/GitLab, in dem sich die Kon­fi­gu­ra­ti­on befindet, und be­ar­bei­ten die Kon­fi­gu­ra­ti­ons­da­tei GitLab.rb mit dem Standard-Text-Editor vim.

Die Befehle sehen fol­gen­der­ma­ßen aus:

cd /etc/GitLab
vim GitLab.rb

In der Datei GitLab.rb suchen Sie Zeile 9 („external_url) und tragen dort die ge­wünsch­te URL ein. GitLab wird die In­stal­la­ti­on an­schlie­ßend unter dieser URL starten und kon­fi­gu­rie­ren.

Beim ersten Start öffnet sich ein Bild­schirm, in dem Sie das Passwort zu­rück­set­zen müssen. Legen Sie das Passwort für den Ad­mi­nis­tra­tor fest; an­schlie­ßend werden Sie zum Log-in-Bild­schirm wei­ter­ge­lei­tet. Für die Anmeldung können Sie zunächst den Standard-Benutzer „root“ verwenden. Die Ein­stel­lun­gen lassen sich später in den Pro­fil­ein­stel­lun­gen ändern.

GitLab unter Windows in­stal­lie­ren

GitLab selbst lässt sich nicht auf einem Windows-Server in­stal­lie­ren, al­ler­dings kann man mit einem so­ge­nann­ten GitLab-Runner von Windows aus auf eine bereits ein­ge­rich­te­te GitLab-In­stal­la­ti­on auf einem Linux-Server zugreifen. Diese Software wird unter Windows in­stal­liert und ist mit der Con­ti­nuous-In­te­gra­ti­on-Funk­tio­na­li­tät von GitLab (GitLab CI/CD) kom­pa­ti­bel. Auf diese Weise kann der Runner Anfragen und Ar­beits­auf­trä­ge an GitLab senden.

Git für Windows und GitLab-Runner-Bi­när­da­ten her­un­ter­la­den

Für die In­stal­la­ti­on von GitLab auf einem Windows-Server wird zunächst Git für Windows benötigt. Sie können die Software auf der of­fi­zi­el­len Website her­un­ter­la­den. Außerdem ist die Vergabe eines in­di­vi­du­el­len Passworts für den Nutzer-Account zu empfehlen, sofern nicht der Standard-System-Account verwendet werden soll.

Ebenfalls notwendig ist ein so­ge­nann­tes Token, das dem Runner Zugriff auf die GitLab-Instanz gewährt. Sie finden einen solchen Zu­gangs­schlüs­sel in den Ein­stel­lun­gen von GitLab unter „Settings“ -> „CI/CD“.

Im nächsten Schritt laden Sie sich die Bi­när­da­tei (x86 oder amd64) für den GitLab-Runner für Windows herunter und erstellen einen Ordner an einem be­lie­bi­gen Ort in Ihrem System, z. B. C:\GitLab-runner.

Den GitLab-Runner in Windows re­gis­trie­ren

Um den GitLab-Runner zu re­gis­trie­ren, geben Sie nun den folgenden Befehl in die Kom­man­do­zei­le ein:

./GitLab-runner.exe register

An­schlie­ßend geben Sie die URL der GitLab-In­stal­la­ti­on (hier ex­em­pla­risch) ein:

https://GitLab.com

Im nächsten Fenster geben Sie das Token ein, um den Runner mit der GitLab-In­stal­la­ti­on zu ver­knüp­fen. An­schlie­ßend können Sie eine eigene Be­schrei­bung für den Runner festlegen. Diese Option lässt sich aber auch später im Interface von GitLab ändern. Das nächste Fenster bietet die Mög­lich­keit, Tags fest­zu­le­gen. Diese Tags eignen sich vor allem dann, wenn ein Runner mehrere Projekte gleich­zei­tig be­ar­bei­ten soll. Mit den Tags können Sie genau festlegen, welche Projekte jeweils zu­ge­wie­sen werden.

Im letzten Schritt legen Sie noch den so­ge­nann­ten „executor“ fest, d. h. die Umgebung, in der der Runner arbeitet, etwa in einer Vir­tu­al­Box-Instanz oder in einer Shell-Umgebung. Shell ist der executor, der am ein­fachs­ten zu kon­fi­gu­rie­ren ist und die Standard-Option, wenn Sie einen GitLab-Runner neu unter Windows re­gis­trie­ren.

Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell

GitLab-Runner unter Windows in­stal­lie­ren und starten

Um den GitLab-Runner zu in­stal­lie­ren, können Sie entweder den ein­ge­bau­ten System-Account nutzen oder einen eigenen Benutzer-Account. Na­vi­gie­ren Sie in der Power­Shell bzw. Ein­ga­be­auf­for­de­rung zu dem Ver­zeich­nis, das Sie oben angelegt haben, und geben Sie nach­ein­an­der folgende Befehle ein:

cd C:\GitLab-Runner
.\GitLab-runner.exe install
.\GitLab-runner.exe start

GitLab-Tutorial: Erste Schritte in GitLab

Nach der In­stal­la­ti­on von GitLab lässt sich die grafische Be­nut­zer­ober­flä­che unter der vorher fest­ge­leg­ten URL aufrufen. Hierzu können Sie den Browser Ihrer Wahl benutzen und sich an­schlie­ßend als Ad­mi­nis­tra­tor anmelden. Der Be­nut­zer­na­me und das da­zu­ge­hö­ri­ge Passwort lassen sich im Admin-Bereich auch nach­träg­lich ändern.

Nutzer in GitLab erstellen

Im Admin-Bereich können Sie durch Auswählen des Me­nü­punkts „New User“ die Benutzer erstellen, die zusammen an den je­wei­li­gen GitLab-Projekten arbeiten. Dazu de­fi­nie­ren Sie eine eigene E-Mail-Adresse sowie in­di­vi­du­el­le Log-in-Daten für den Benutzer und weisen ihn an­schlie­ßend dem ge­wünsch­ten Projekt zu.

An gleicher Stelle lassen sich auch die Be­nut­zer­rech­te durch Auswählen von „Edit“ ändern und Nutzer blo­ckie­ren oder voll­stän­dig entfernen. Beachten Sie, dass das Blo­ckie­ren eines Nutzers ver­hin­dert, dass dieser sich anmeldet, während alle Daten (bei­spiels­wei­se Commits) erhalten bleiben. Das voll­stän­di­ge Entfernen löscht auch die mit dem Nutzer ver­knüpf­ten In­for­ma­tio­nen – diese Option sollte daher nur mit Bedacht aus­ge­wählt werden.

Ein neues Projekt erstellen

Der wich­tigs­te Schritt besteht zunächst darin, ein neues Projekt anzulegen. Dazu wählen Sie die Schalt­flä­che „New Project“ aus, woraufhin Sie zum Fenster des zu er­stel­len­den Projekts gelangen. In das Feld „Project Name“ tragen Sie den Namen des Projekts ein, wobei dieser keine Son­der­zei­chen oder Leer­zei­chen enthalten darf. Unter „Vi­si­bi­li­ty“ legen Sie die Sicht­bar­keit fest, also welche Nutzer Zugriff auf das Projekt haben. Dabei wird zwischen folgenden Stufen un­ter­schie­den:

  • Privat: Nur Sie selbst haben Zugriff.
  • Intern: Jeder an­ge­mel­de­te Nutzer hat Zugriff.
  • Öf­fent­lich: Auf das Projekt kann jeder Nutzer ohne vorherige Au­then­ti­fi­zie­rung zugreifen.

Nach Auswahl der Ein­stel­lun­gen erstellen Sie das Projekt durch Auswählen von „create project“. Danach können Sie es direkt mit einem lokalen Git-Re­po­si­to­ry verbinden. Dazu wählen Sie in der Pro­jekt­an­sicht unter der Pro­jekt­be­zeich­nung die Option „HTTPS“ aus und kopieren die an­ge­zeig­ten Befehle in die Kom­man­do­zei­le.

Falls Sie noch keine lokale Kopie des Re­po­si­to­rys auf dem Server haben, können Sie das an dieser Stelle nachholen, indem Sie folgenden Befehl eingeben:

$ git clone https://server/namespace/project.git

Nachdem das Re­po­si­to­ry mit dem ersten Push in­itia­li­siert wurde, lassen sich alle In­for­ma­tio­nen zu dem Re­po­si­to­ry auf der Pro­jekt­sei­te einsehen. Dort können Sie sich auch die letzten Ak­ti­vi­tä­ten anzeigen lassen und im Commit-Log nach­voll­zie­hen, wer wann welche Än­de­run­gen am Code vor­ge­nom­men hat.

Mit GitLab zusammen im Team arbeiten

Der ein­fachs­te Weg, zusammen mit anderen Nutzern an einem GitLab-Projekt zu arbeiten, besteht darin, den Nutzern direkten Push-Zugriff auf das Re­po­si­to­ry zu gewähren. Dazu fügen Sie die Nutzer, wie oben erläutert, zu einem Projekt hinzu und statten sie mit den ent­spre­chen­den Zu­griffs­rech­ten aus.

Nutzer mit der Be­rech­ti­gung „developer“ oder höher können ihre Commits und Branches ohne Ein­schrän­kun­gen in das Re­po­si­to­ry ver­schie­ben. Al­ter­na­tiv lassen sich auch so­ge­nann­te Merge-Requests benutzen: Dadurch lässt sich der Zugriff stärker kon­trol­lie­ren, da der Master-Branch nicht direkt be­ar­bei­tet wird. Statt­des­sen können Nutzer einen Branch erstellen, ihre Commits eintragen und dann eine Merge-Anfrage stellen, um den Branch mit dem Master (oder einem anderen Branch) zu verbinden.

Nutzer ohne Zu­griffs­rech­te können außerdem Forks erstellen, also ihre eigene Kopie des Projekts mit Push-Commits be­ar­bei­ten. An­schlie­ßend können sie einen Merge-Request ein­rei­chen, um die Fork wieder in das Haupt­pro­jekt zu in­te­grie­ren. Mit dieser Funktion hat der Ei­gen­tü­mer des Projekts die volle Kontrolle darüber, was jeweils in das Re­po­si­to­ry gelangt, kann aber gleich­zei­tig un­be­kann­ten Nutzern er­mög­li­chen, ihre Beiträge ein­zu­rei­chen.

Hinweis

Als aus­ge­reif­tes Kol­la­bo­ra­ti­ons­tool verfügt GitLab über zahl­rei­che Funk­tio­nen, die die Zu­sam­men­ar­beit im Team er­leich­tern, bei­spiels­wei­se Projekt-Wikis oder Tools zur Sys­tem­war­tung.

Zum Hauptmenü