Zum Inhalt

Git-Integration

Diese Seite bietet eine kurze Einführung in Git und beschreibt die wichtigsten Befehle für die Arbeit mit Git in JupyterHub.

Was ist Git?

Git ist ein Werkzeug zur Verwaltung von Projekten, zur Zusammenarbeit mit anderen und zur Nachverfolgung von Änderungen an Code oder Notebooks. Als Versionskontrollsystem protokolliert Git Änderungen in Dateien und ermöglicht es, die Entwicklung eines Projekts nachvollziehbar zu machen und bei Bedarf zu früheren Versionen.

Warum Git nutzen?

  • Änderungen verfolgen: Git zeichnet jede Änderung an Dateien auf, sodass Modifikationen leicht eingesehen oder rückgängig gemacht werden können.
  • Zusammenarbeit: Bei Gruppenprojekten ermöglicht Git mehreren Personen, gleichzeitig am selben Projekt zu arbeiten, ohne die Änderungen anderer zu überschreiben.
  • Reproduzierbarkeit: Git speichert die Historie eines Codes und unterstützt so die Reproduzierbarkeit von Arbeit.
  • Backup: Repositories auf GitHub oder GitLab können als Backup dienen, falls lokale Kopien verloren gehen oder beschädigt werden.

1. Erste Schritte mit Git

Git installieren

Installieren Sie Git je nach Betriebssystem wie folgt:

  • Windows: Laden Sie den Git-Installer von Git for Windows herunter und führen Sie das Setup aus.
  • macOS: Installieren Sie Git über Homebrew mit dem Befehl brew install git oder nutzen Sie den Installer für macOS.
  • Linux: Installieren Sie Git über den Paketmanager. Für Ubuntu:
    sudo apt-get install git
    

Git konfigurieren

Konfigurieren Sie nach der Installation die Benutzerinformationen mit folgendem Befehl:

git config --global user.name "Ihr Name"
git config --global user.email "ihre-email@beispiel.de"
Diese Informationen werden zur Zuordnung der Commits verwendet. Ein Commit speichert Änderungen im Repository und enthält eine kurze Nachricht, die die vorgenommenen Änderungen beschreibt.

2. Grundlegende Git-Befehle

Ein Repository klonen

Beim Klonen wird eine Kopie eines entfernten (Remote-)Repositorys – zum Beispiel eines Projekts auf GitHub – auf den eigenen Rechner heruntergeladen. Klonen Sie ein Repository mit folgendem Befehl:

git clone https://github.com/ihr-repository.git

Projektstatus prüfen

Prüfen Sie den Status des Repositorys mit folgendem Befehl:

git status

Änderungen verfolgen

Sobald Dateien geändert wurden, können diese vorgemerkt (gestaged) und bestätigt (committet) werden.

Änderungen vormerken (Staging)

Fügen Sie die gewünschten Dateien vor dem Commit mit folgendem Befehl zum Staging-Bereich hinzu:

git add <dateiname>
Um alle Änderungen hinzuzufügen, führen Sie folgenden Befehl aus:

git add .

Änderungen bestätigen (Commit)

Sobald sich die Änderungen im Staging-Bereich befinden, erstellen Sie einen Commit mit folgendem Befehl:

git commit -m "Beschreibung der vorgenommenen Änderungen"

Änderungen an das Remote-Repository übertragen (Push)

Übertragen Sie die Änderungen nach dem lokalen Commit mit folgendem Befehl an das Remote-Repository (z. B. GitHub), damit sie für andere verfügbar sind:

git push origin main
Damit werden die Commits in den Main Branch des Remote-Repositorys hochgeladen.

Änderungen vom Remote-Repository abrufen (Pull)

Aktualisieren Sie das lokale Repository mit folgendem Befehl:

git pull origin main
Damit werden die neuesten Änderungen vom Remote-Repository abgerufen und integriert.

3. Branching und Merging

Git ermöglicht die Arbeit in separaten Zweigen (Branches), um neue Funktionen zu entwickeln, ohne den Hauptcode (Main Branch) zu beeinflussen.

Einen Branch erstellen

Ein neuer Branch kann mit folgendem Befehl erstellt werden:

git checkout -b feature-name
Dies erstellt einen neuen Branch und wechselt direkt dorthin.

Branches wechseln

Zu einem bestehenden Branch kann mit folgendem Befehl gewechselt werden:

git checkout main

Branches zusammenführen (Merge)

Nachdem die Änderungen im eigenen Branch abgeschlossen sind, können sie mit folgendem Befehl in den Main Branch zusammengeführt werden:

git checkout main
git merge feature-name
Falls Konflikte auftreten, weist Git darauf hin. Diese müssen manuell gelöst werden, bevor der Merge abgeschlossen werden kann.

4. Zusammenarbeit mit Git

Forken eines Repositorys

Um zu einem Projekt beizutragen, kann ein Repository auf GitHub "geforkt" werden. Dabei wird eine eigene Kopie des Repositorys erstellt, in der Änderungen vorgenommen werden können, ohne das Originalprojekt direkt zu beeinflussen.

Einen Pull Request erstellen

Nachdem Änderungen vorgenommen wurden, kann ein Pull Request (PR) eingereicht werden, um die Änderungen für das Original-Repository vorzuschlagen.

  1. Navigieren Sie zum Original-Repository.
  2. Klicken Sie auf die Schaltfläche "Pull Request".
  3. Wählen Sie den entsprechenden Branch aus und senden Sie den „Pull Request“ mit einer Beschreibung der Änderungen ab.

5. Git in JupyterHub

Git ist in den JupyterHub-Umgebungen bereits vorinstalliert und kann über die Befehlszeile (Terminal) verwendet werden.

Die Installation kann durch die Eingabe von git version im Terminal überprüft werden.

6. Fehlerbehebung

Vorgehensweise bei Merge-Konflikten

Merge-Konflikte treten auf, wenn Änderungen in zwei Branches nicht automatisch zusammengeführt werden können. So werden sie gelöst:

  1. Öffnen Sie die betroffene Datei, um die Konfliktstellen einzusehen.Git markiert die betroffenen Dateien mit Konfliktmarkern.
  2. Die Datei manuell bearbeiten, um den Konflikt zu lösen.

    • Git fügt in jeder konfliktbehafteten Datei drei Marker ein:

    <<<<<<< HEAD – Beginn des lokalen (aktuellen) Abschnitts

    ======= – Trennlinie

    >>>>>>> <branch‑name> – Beginn des eingehenden Abschnitts

    • Öffnen Sie die Datei in einem Editor (z. B. VS Code, IntelliJ, vim).

    • Entscheiden Sie, welche Variante Sie behalten wollen, oder kombinieren Sie beide.

    • Entfernen Sie alle Konflikt‑Marker (<<<<<<<, =======, >>>>>>>).
    • Speichern Sie die Datei.
  3. Fügen Sie die Datei zum Staging-Bereich hinzu und führen Sie den Commit mit folgendem Befehl durch:

git add <dateiname>
git commit -m "Merge-Konflikt gelöst"

Den letzten Commit rückgängig machen

Falls im letzten Commit ein Fehler unterlaufen ist, kann dieser wie folgt rückgängig gemacht werden:

git reset --soft HEAD~1
Dabei wird der Commit rückgängig gemacht, die Änderungen bleiben jedoch im Staging-Bereich erhalten und können erneut committet werden.