faecher:informatik:oberstufe:git:cloning:start

Dies ist eine alte Version des Dokuments!


Geklonte Repositorys

Zunächst ist ein Git-Repo wie wir gesehen haben, eine vollkommen lokale Angelegenheit - alle wichtigen Informationen und die Snapshots werden im .git-Verzeichnis gespeichert.

Um besser zusammenarbeiten zu können ist es möglich, ein Repo über entsprechende Mechanismen anderen Menschen zur Verfügung zu stellen, z.B. via Mail, SSH oder https. Diese Weitergabe muss nicht unbedingt öffentlich geschehen, sondern kann durchaus z.B. mit einem Passwort geschützt werden, so dass nur Mitglieder einer bestimmten Gruppe Zugriff auf das Repo haben. Außerdem kann zwischen lesendem Zugriff und schreibendem Zugriff unterschieden werden und vieles mehr.

Sehr beliebt sind für solche Austauschzwecke grafische Webanwendungen, die bekannteste dürfte die Microsoft Plattform "Github" sein, in Deutschland ist eine bekannte Plattform "Codeberg"1) auf der sich auch viele Codebeispiele aus dem Wiki befinden. Man kann eine solche Austauschplattform aber auch selbst betreiben, wenn man möchte.

Ein so veröffentlichtes Repo kann man "klonen". Der Befehl lautet z.B.

git clone https://codeberg.org/info-bw-wiki/git-kurs-tagebuch.git

Die Adresse, von der das Repo geklont wird, heißt origin.

max@pc:git-clone$ git clone https://codeberg.org/info-bw-wiki/git-kurs-tagebuch.git
Klone nach 'git-kurs-tagebuch'...
remote: Enumerating objects: 12, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 12 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0)
Empfange Objekte: 100% (12/12), fertig.
Löse Unterschiede auf: 100% (1/1), fertig.
max@pc:git-clone$ 

Der Begriff des Klonens ist hier wörtlich zu nehmen - jetzt existiert eine vollständige Kopie des Repos auf dem lokalen Rechner, die alle Commits des ursprünglichen Repos nachverfolgbar enthält:

Nun kann man mit dem Repo lokal ganz normal arbeiten, der Unterschied zum "lokalen" Repo ist, dass dieses Repository weiss, woher es kommt, und das ermöglich es auch, Änderungen wieder auf den entfernten Server zurückzu"pushen". Der dazu verwendete Befehl lautet git push.

Zunächst bearbeitet man lokal Dateien im Repo und erzeugt einen (oderer mehrere Commits) :

Mit dem Befehl git push kann man die Änderungen nun zum "origin" zurückpushen:

Damit landen die Änderungen auf dem ursprünglichen Server.

Um Probleme beim "pushen" von Änderungen zu vermeiden - besonders wenn man in einem Team an einem Repo arbeitet, oder wenn man das Repo auf mehreren Rechnern gleichzeitig bearbeitet, muss man seine lokale Arbeitskopie aktuell halten. Das geschieht mit dem Befehl git pull.

Man sollte vor Arbeitsbeginn pullen und bevor man versucht zu pushen. wenn Konflikte auftreten, weil zwischenzeitlich Änderungen auf das zentrale Repository gepusht wurden, kann man diese zunächst lösen und dann das Ergebnis pushen. Wie man Konflikte löst betrachten wir gesondert.


  • faecher/informatik/oberstufe/git/cloning/start.1728322356.txt.gz
  • Zuletzt geändert: 07.10.2024 17:32
  • von Frank Schiebel