Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

6.6 Remote Repositories und Zusammenarbeit

Humboldt-Universität zu Berlin, Institut für Bibliotheks- und Informationswissenschaft

Bisher haben Sie mit Git nur lokal auf Ihrem Computer gearbeitet. In diesem Kapitel lernen Sie, wie Sie Ihre Repositories mit einem Server (z.B. GitHub oder GitLab) synchronisieren können.

Was ist ein Remote Repository?

Ein Remote Repository (oft einfach “Remote” genannt) ist eine Kopie Ihres Git-Projekts auf einem Server im Internet. Die wichtigsten Vorteile:

Hosting-Plattformen

Die bekanntesten Plattformen für Git-Repositories:

GitHub
  • Größte Plattform, sehr verbreitet

  • Kostenlose öffentliche und private Repositories

  • https://github.com

GitLab
Gitea/Forgejo
  • Leichtgewichtige, selbst-hostbare Lösung

  • Open Source

  • Oft von Institutionen verwendet

In diesem Kurs verwenden wir GitHub als Beispiel, aber die Konzepte gelten für alle Plattformen.

Ein Repository klonen: git clone

Der häufigste Weg, mit einem Remote-Repository zu arbeiten, ist es zu klonen – das heißt, eine vollständige Kopie herunterzuladen.

Beispiel: Diesen Kurs klonen

Sie haben diesen Kurs wahrscheinlich bereits geklont, als Sie ihn eingerichtet haben:

git clone https://github.com/schnaitter/Selbstlernkurs_Python.git

Was passiert?

  1. Git lädt das Repository herunter

  2. Erstellt einen Ordner mit dem Repository-Namen

  3. Richtet automatisch eine Verbindung zum Remote-Repository ein

  4. Checkt den Standard-Branch (meist main) aus

Die Remote-Verbindung anzeigen

Wenn Sie ein Repository geklont haben, ist automatisch eine Remote-Verbindung eingerichtet:

git remote -v

Ausgabe:

origin  https://github.com/schnaitter/Selbstlernkurs_Python.git (fetch)
origin  https://github.com/schnaitter/Selbstlernkurs_Python.git (push)

Änderungen herunterladen: git pull

Wenn das Remote-Repository aktualisiert wurde (z.B. durch andere Personen oder von einem anderen Computer), laden Sie die Änderungen mit:

git pull

Was passiert?

  1. Git fragt das Remote-Repository: “Gibt es neue Commits?”

  2. Lädt neue Commits herunter

  3. Führt sie mit Ihrem lokalen Stand zusammen (merge)

Beispiel-Ausgabe:

remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 2), reused 5 (delta 2)
Unpacking objects: 100% (5/5), done.
From https://github.com/schnaitter/Selbstlernkurs_Python
   a1b2c3d..e4f5g6h  main -> origin/main
Updating a1b2c3d..e4f5g6h
Fast-forward
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Änderungen hochladen: git push

Wenn Sie lokal Commits erstellt haben und diese auf den Server hochladen möchten:

git push

Voraussetzungen:

Beispiel-Ausgabe:

Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 280 bytes | 280.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/ihre-username/ihr-projekt.git
   a1b2c3d..e4f5g6h  main -> main

Ein neues Remote-Repository erstellen

Szenario: Sie haben ein lokales Projekt und möchten es auf GitHub veröffentlichen.

Schritt 1: Repository auf GitHub erstellen

  1. Gehen Sie zu https://github.com und loggen Sie sich ein

  2. Klicken Sie auf “New repository” (grüner Button)

  3. Geben Sie einen Namen ein (z.B. “mein-python-projekt”)

  4. Wählen Sie öffentlich (public) oder privat (private)

  5. Wichtig: Erstellen Sie KEIN README, keine .gitignore, keine Lizenz (das machen wir lokal)

  6. Klicken Sie auf “Create repository”

GitHub zeigt Ihnen jetzt Anweisungen. Wir folgen den Anweisungen für ein “existing repository”:

Schritt 2: Lokales Repository mit Remote verbinden

In Ihrem lokalen Projektordner:

# Remote-Verbindung hinzufügen (URL von GitHub kopieren!)
git remote add origin https://github.com/ihr-username/mein-python-projekt.git

# Branch umbenennen (falls noch "master" statt "main")
git branch -M main

# Zum ersten Mal hochladen
git push -u origin main

Schritt 3: Weitere Commits hochladen

Ab jetzt können Sie normal arbeiten:

# Datei ändern
echo "print('Neue Funktion')" >> programm.py

# Committen
git add programm.py
git commit -m "Neue Funktion hinzugefügt"

# Hochladen
git push

Der komplette Workflow: lokal und remote

Authentifizierung: SSH vs. HTTPS

Wenn Sie auf ein Remote-Repository zugreifen, müssen Sie sich authentifizieren. Es gibt zwei Methoden:

HTTPS (einfacher für Anfänger)

git clone https://github.com/username/repo.git

Vorteile:

Nachteile:

Token erstellen (GitHub):

  1. GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)

  2. “Generate new token” → Berechtigungen auswählen (mindestens repo)

  3. Token kopieren (wird nur einmal angezeigt!)

  4. Beim git push Token als Passwort eingeben

SSH (für Fortgeschrittene)

git clone git@github.com:username/repo.git

Vorteile:

Nachteile:

Häufige Situationen

Szenario 1: Lokale und remote Änderungen

Sie haben lokal gearbeitet, aber jemand anderes hat auch Änderungen hochgeladen.

git push

Fehlermeldung:

! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'https://github.com/...'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.

Lösung:

# Erst remote Änderungen herunterladen
git pull

# Dann hochladen
git push

Szenario 2: Ein geklontes Repository aktualisieren

Sie haben ein Repository vor Wochen geklont. Jetzt möchten Sie die neuesten Änderungen:

cd pfad/zum/repository
git pull

Szenario 3: Remote-URL ändern

Sie haben Ihr Repository umbenannt oder die URL geändert:

# Aktuelle URL anzeigen
git remote -v

# URL ändern
git remote set-url origin https://github.com/neue-url/neues-repo.git

# Überprüfen
git remote -v

Zusammenarbeit: Ein einfaches Beispiel

Angenommen, Sie arbeiten mit einer Kollegin zusammen:

Sie (Computer A):

# Datei ändern
echo "# Neue Notiz" >> notizen.md
git add notizen.md
git commit -m "Notiz hinzugefügt"
git push

Ihre Kollegin (Computer B):

# Änderungen herunterladen
git pull

# Jetzt hat sie Ihre Änderung!
cat notizen.md

Ihre Kollegin macht auch Änderungen:

echo "# Weitere Notiz" >> notizen.md
git add notizen.md
git commit -m "Weitere Notiz ergänzt"
git push

Sie holen die Änderungen:

git pull

Was sind Merge-Konflikte?

Wenn zwei Personen dieselbe Zeile in derselben Datei ändern, entsteht ein Merge-Konflikt. Git kann nicht automatisch entscheiden, welche Änderung korrekt ist.

Zusammenfassung

Die wichtigsten Befehle für Remote-Repositories:

BefehlBeschreibung
git clone <url>Repository herunterladen
git remote -vRemote-Verbindungen anzeigen
git pullÄnderungen vom Server herunterladen
git pushÄnderungen zum Server hochladen
git remote add origin <url>Remote-Verbindung hinzufügen

Typischer Workflow

# Am Anfang: Repository klonen
git clone https://github.com/username/projekt.git
cd projekt

# Regelmäßig: Vor Arbeitsbeginn aktualisieren
git pull

# Arbeiten: Änderungen machen und committen
git add .
git commit -m "Änderungen beschrieben"

# Am Ende: Hochladen
git push

Im nächsten Kapitel lernen Sie Branches kennen – ein mächtiges Feature zum parallelen Arbeiten an verschiedenen Features.