Git

Einführung

Git ist ein verteiltes Versionskontrollsystem, das Änderungen an beliebigen Computerdateien verfolgt und in der Regel für die Koordinierung der Arbeit von Programmierern verwendet wird, die während der Softwareentwicklung gemeinsam an Quellcode arbeiten. Zu seinen Zielen gehören Geschwindigkeit, Datenintegrität und die Unterstützung verteilter, nichtlinearer Arbeitsabläufe (Tausende von parallelen Zweigen, die auf verschiedenen Computern laufen).

Seit seiner Entwicklung hat sich Git zum beliebtesten verteilten Versionskontrollsystem entwickelt. 2022 gaben fast 95 % der Entwickler an, es als ihr primäres Versionskontrollsystem zu verwenden. Es gibt viele beliebte Angebote für Git-Repository-Dienste, darunter GitHub, SourceForge, Bitbucket und GitLab.

An der FH Münster wird für die Verwaltung von Code ein eigenes GitLab angeboten. Dies ist über git.fh-muenster.de (auch außerhalb des FH Netzes) per FH Login erreichbar.

Erstellen eines GitLab Repositories

Um das FH GitLab für die Verwaltung von R Code in RStudio bzw. der Posit Workbench zu verwenden, sollte zunächst ein entsprechendes Projekt in GitLab erzeugt werden. Hierzu kann auf der Startseite (vgl. Abbildung 1) ein neues Projekt per Klick erstellt werden.

Abbildung 1: Startseite von GitLab unter git.fh-muenster.de

Die Erstellung eines Repositories lässt sich zunächst am einfachsten über ein leeres Projekt starten (vgl. Abbildung 2).

Abbildung 2: Erstellen eines neuen Projekts in GitLab unter git.fh-muenster.de

Anschließend müssen – wie in Abbildung 3 gezeigt – diverse Angaben für das Projekt gemacht werden, wie beispielsweise ein Name und ob das Projekt öffentlich verfügbar sein soll (“Public”), nur für FH Angehöre (“Internal”) oder nicht öffentlich (“Private”).

Abbildung 3: Angabe der Details für ein neues Projekt in GitLab unter git.fh-muenster.de

Anschließend ist das Projekt erstellt (vgl. Abbildung 4).

Abbildung 4: Projektübersicht für das neu erstellte Projekt in GitLab unter git.fh-muenster.de

Zusammenarbeit in GitLab Projekten

In GitLab lassen sich für ein Projekt weitere Personen zur Zusammenarbeit einladen. Im Hauptmenü des Projekt ist dies unter dem Punkt “Members” möglich (vgl. Abbildung 5).

Abbildung 5: Mitgliederübersicht in GitLab unter git.fh-muenster.de

Den Mitgliedern des Projekts lassen sich unterschiedliche Rollen mit entsprechenden Rechten zuweisen (vgl. Abbildung 6). In der Dokumentation von GitLab lassen sich die entsprechenden Berechtigungen der Rollen nachlesen.

Abbildung 6: Einladen neuer Mitglieder zu einem Respoitory in GitLab unter git.fh-muenster.de

Verwendung von GitLab mit RStudio bzw. Posit Workbench

Im Folgenden finden Sie eine Kurzbeschreibung über die Arbeit mit GitLab in RStudio bzw. Posit Projekten. Sehr detailliert geht das Buch bzw. die Webseite Happy Git and GitHub for the useR auf die Verwendung des Versionskontrollsystems Git für R Programmierer ein. Viele Erläuterungen beziehen sich hierbei auf GitHub, lassen sich aber leicht auf GitLab übertragen.

Klonen eines GitLab Projekts in RStudio/Posit

Um das Projekt in RStudio bzw. der Positworkbench zu klonen, ist der entsprechende Link in GitLab zu kopieren. Abbildung 7 zeigt zwei unterschiedliche Möglichkeiten:

  • Clone with SSH: Für diese Variante ist zunächst auf dem Zielgerät (in der Regel die Posit Workbench oder der eigene Rechner) ein SSH Schlüsselpaar zu erstellen. Sobal die Schlüssel erzeugt und in den entsprechenden Systemen hinterlegt sind, kann die Synchronisierung ohne weitere Eingabe von Nutzername und Passwort erfolgen. Eine detaillierte Beschreibung zu Erstellung der SSH Keys finden sich hier.
  • Clone with HTTPS: Für diese VariantekKann einfach die FH Kennung und das entsprechende Passwort verwendet werden. Diese müssen allerdings bei jeder Synchronisierung eingegeben werden.

Zusammenfassend lässt sich also festhalten, dass das Klonen per SSH einen gewissen Initialaufwand erfordert, falls noch kein Schlüsselpaar vorliegt. Ist dies allerdings einmal erledigt, vereinfacht sich im weiteren Verlauf der Synchronisierungsprozess, da keine Passworteingabe mehr erforderlich ist.

Abbildung 7: Link zum Klonen des Projekts in GitLab unter git.fh-muenster.de

Ein Projekt lässt sich von allen Mitgliedern klonen. Zum Klonen des GitLab Projekts in RStudio bzw. der Posit Workbench, muss hier ein neues Projekt erstellt werden. Hierzu wird bei der Erstellung des neuen Projekts als Quelle “Version Control” ausgewählt (vgl. Abbildung 8).

Abbildung 8: Auswahl der Versionskontrolle bei der Erstellung eines neuen RStudio/Posit Projekts

Dort wiederum ist dann git als Versionskontrollsystem auszuwählen (vgl. Abbildung 9)

Abbildung 9: Auswahl von git bei der Erstellung eines neuen RStudio/Posit Projekts

Zum Abschluss der Erstellung wird der zuvor kopierte Link zum GitLab Respository eingefügt und ein Ordner für die Ablage des Codes angegeben (vgl. Abbildung 10).

Abbildung 10: Abschluss bei der Erstellung eines neuen RStudio/Posit Projekts

In der anschließenden Eingabeaufforderung gibt man noch die FH Kennung und das dazugehörige Passwort an. Anschließend werden die Inhalte des GitLab Repositories in das Verzeichnis des RStudio bzw. Posit Projekts geklont.

In dem Projekt ist nun im oberen rechten Abschnitt ein Reiter mit dem Namen “Git” zu sehen (vgl. Abbildung 11). In diesem Reiter lässt sich die Interaktion mit dem GitLab Repository steuern.

Abbildung 11: Aktives git bzw. RStudio/Posit Projekt

Stage, Commit, Pull, Push

Um einen Zwischenstand von Änderungen zu sichern, zu dem man später jederzeit zurückkehren kann, erstellt man einen sogenannten “Commit” mit einem Klick auf den gleichnamigen Button. Es öffnet sich das in Abbildung 13 gezeigt Fenster. Das anschließende Vorgehen ist wie folgt:

  1. Auswahl der Dateien mit Änderungen, die für die Zwischenspeicherung berücksichtigt werden sollen (sog. Staging) mit dem Button “Stage”.
  2. Verfassen einer “Commit message” zur Dokumentation der Bedeutung der Änderungen. Diese Message darf nicht leer sein und sollte unbedingt sinnstiftend gefüllt werden, um später die Änderungen nachvollziehen zu können.
  3. Anschließend wird der Commit über einen Klick auf den entsprechenden Button bestätigt.

Sollten Änderungen an Dateien zurückgenommen werden, gelingt dies über “Revert”.

Nach dem Commit sind die Änderungen zunächst lokal festgehalten und noch nicht mit dem GitLab Server synchronisiert. Um die Änderungen in das GitLab Repository zu schieben, nutzt man einen “Push” mit einem Klick auf den entsprechenden Button. Änderungen, die im Repository vorgenommen wurden, aber noch nicht lokal verfügbar sind, lassen sich über einen “Pull” beziehen. In der Regel ist vor dem Push ein Pull auszuführen, um sicher zu stellen, dass das lokale Repository auf dem aktuellen Stand ist.

Der Prozess zur Arbeit mit Git als Versionskontrollsystem wird in Abbildung 12 zusammengefasst.

Abbildung 12: Arbeitsweise von Git und Prozessschritte zur Versionskontrolle, Quelle: Amit Prajapati, Medium

Beim Push von Änderungen kann es zu Konflikten kommen, insbesondere in der Zusammenarbeit mit anderen Mitgliedern, falls an derselben Stelle des Codes unterschiedliche Arbeitsstände lokal und im Repository vorliegen. In diesem Fall ist der Konflikt manuell zu lösen. Einige nützliche Hinweise dazu finden Sie hier

Abbildung 13: Git Commit Fenster in RStudio/Posit

Verwendung von GitLab mit JupyterHub

Klonen eines GitLab Projekts in JupyterHub

Inhalt kommt demnächst…

Zurück nach oben