Teil 3 – Arbeiten mit Remote-Repositories (GitHub, GitLab, etc.)

Warum Remote-Repositories wichtig sind

Bisher haben wir Git lokal genutzt: Repository anlegen, Dateien committen, Branches anlegen, Merges durchführen.
Aber in der Praxis arbeitet man fast nie allein. Teams wollen:

  • Code teilen
  • gemeinsam an Features entwickeln
  • Änderungen diskutieren und prüfen

Hier kommen Remote-Repositories ins Spiel: zentrale Orte, an denen der Code liegt, damit alle darauf zugreifen können.


Beliebte Plattformen

  • GitHub → der Platzhirsch, riesige Open-Source-Community.
  • GitLab → ähnlich wie GitHub, viele Enterprise-Features.
  • Bitbucket → stark in Unternehmensumgebungen.
  • Selbst gehostet → z. B. GitLab CE oder Gitea auf eigenem Server.

Alle diese Plattformen nutzen Git, unterscheiden sich aber in Zusatzfunktionen wie Issues, CI/CD, Wikis oder Code Reviews.


Dein erstes Remote-Repository

Auf GitHub ein Repo erstellen

  1. Auf github.com einloggen.
  2. Auf „New Repository“ klicken.
  3. Namen vergeben (z. B. meinprojekt).
  4. Optional: Beschreibung, README, Lizenz.
  5. Auf „Create Repository“ klicken.

Ergebnis: eine URL, z. B.

https://github.com/maxmustermann/meinprojekt.git

Ein Remote zu deinem lokalen Repo hinzufügen

Wenn du schon ein lokales Repository hast:

git remote add origin https://github.com/maxmustermann/meinprojekt.git

👉 origin ist der Standardname für das Haupt-Remote.

Überprüfung:

git remote -v

Code hochladen (pushen)

  1. Erst Commit(s) lokal erstellen.
  2. Dann hochladen:
git push -u origin main
  • -u merkt sich, dass main mit origin/main verknüpft ist.
  • Danach reicht einfach:
git push

Code herunterladen (clonen & pullen)

Clonen

Wenn du ein fremdes Projekt von GitHub laden willst:

git clone https://github.com/maxmustermann/meinprojekt.git

👉 Ergebnis: Ein Ordner mit kompletter Historie, nicht nur aktuelle Dateien.


Pullen

Wenn andere Leute Änderungen gemacht haben:

git pull
  • Holt neue Commits vom Remote und integriert sie in deinen Branch.
  • Standardmäßig: fetch + merge.

Fetch vs. Pull

  • git fetch → lädt nur die neuen Commits herunter, integriert sie aber nicht.
  • git pull → macht automatisch fetch + merge.

👉 Empfehlung: Erst fetch, dann prüfen, dann selbst mergen.


Zusammenarbeit im Team

Branches auf Remote pushen

Wenn du an einem Feature arbeitest:

git checkout -b feature-login
git push -u origin feature-login

Jetzt können andere Teammitglieder deinen Branch sehen.


Pull Requests (GitHub) / Merge Requests (GitLab)

Statt Änderungen direkt in main zu pushen, erstellt man einen Pull Request (PR).

  • Du pushst deinen Branch.
  • Auf GitHub klickst du „New Pull Request“.
  • Dein Team kann den Code prüfen, kommentieren, Tests laufen lassen.
  • Erst danach wird gemerged.

👉 Vorteil: Qualitätssicherung, Diskussion, Transparenz.


Typische Workflows

  1. Feature-Branch-Workflow
    • Für jedes Feature ein Branch.
    • PR/MR in main.
    • Gut für kleine Teams.
  2. GitFlow
    • Strenger: main, develop, feature/*, release/*, hotfix/*.
    • Komplex, aber nützlich für große Teams und Releases.
  3. Trunk-Based Development
    • Alles direkt in main, sehr kurze Branch-Lebenszeiten.
    • Stark mit CI/CD kombiniert.

Konflikte beim Teamwork

Beispiel

  • Du und deine Kollegin ändern beide index.html.
  • Sie pusht zuerst.
  • Du willst pushen → Git meckert:
! [rejected] main -> main (fetch first)

Lösung

  1. Änderungen ziehen:
git pull
  1. Konflikte lösen (falls nötig).
  2. Merge commit erstellen.
  3. Erneut pushen.

Forks – das Open-Source-Modell

Bei Open-Source-Projekten hat man oft kein Schreibrecht auf dem Haupt-Repo. Lösung: Forks.

  • Du erstellst auf GitHub eine Kopie („Fork“) des Projekts in deinem Account.
  • Du arbeitest an deinem Fork.
  • Wenn du fertig bist, erstellst du einen Pull Request zurück ins Hauptprojekt.

👉 So kann jeder beitragen, ohne Chaos zu verursachen.


Nützliche Befehle für Remotes

  • Anzeigen aller Remotes:
git remote -v
  • Entfernen eines Remotes:
git remote remove origin
  • Branch vom Remote löschen:
git push origin --delete feature-login

Best Practices für Teamarbeit

  • Nie direkt auf main entwickeln.
    → Immer Branches nutzen, PRs erstellen.
  • Kleine PRs statt Monster-Änderungen.
    → Leichter zu reviewen.
  • Regelmäßig pullen/fetchen.
    → Verhindert große Konflikte.
  • Commit-Messages klar formulieren.
    → Teammitglieder verstehen Änderungen sofort.
  • CI/CD nutzen.
    → Automatische Tests vor dem Merge ausführen.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert