Ein lokales Repo auf einen Server Pushen
Wenn man (wie wir) zunächst ein lokales Repo angelegt hat, möchte man das möglicherweise auf einem zentralen Server wie codeberg, github oder gitea.schule.social vorhalten, um das Repo gemeinsam zu bearbeiten, oder auf verschiedene Rechner klonen zu können.
Um dieses Ziel zu erreichen geht man wie folgt vor:
- Man erzeugt auf dem Server ein Repo, in welches das lokale Repository gepusht werden soll
- Man setzt händisch den Origin des lokalen Repos auf die Adresse des auf dem Server erzeugten Repos
- Nun kann man das lokale Repo zum "neuen Origin" pushen.
- Von nun an arbeitet man im lokalen Klon weiter, indem man regelmäßig pullt und pusht.
Am Beispiel Foregejo
- Anmelden bei Forgejo1).
- Repository erstellen: Name und Beschreibung eingeben, dann nach unten scrollen und auf
Repository erstellen
klicken.
- Nun wird die Anleitung für das weitere Vorgehen direkt angezeigt:
- Für uns trifft der zweite Fall im roten Rahmen zu - wir wollen ein bestehendes Repo pushen, führen die angegebenen Befehle also in unserem lokalen Repo aus:
max@pc:tagebuch$ git remote add origin https://codeberg.org/info-bw-wiki/git-kurs-tagebuch.git max@pc:tagebuch$ git push -u origin main Username for 'https://codeberg.org': geheim Password for 'https://geheim@codeberg.org': Objekte aufzählen: 12, fertig. Zähle Objekte: 100% (12/12), fertig. Delta-Kompression verwendet bis zu 4 Threads. Komprimiere Objekte: 100% (8/8), fertig. Schreibe Objekte: 100% (12/12), 1.12 KiB | 1.12 MiB/s, fertig. Gesamt 12 (Delta 1), Wiederverwendet 0 (Delta 0), Pack wiederverwendet 0 To https://codeberg.org/info-bw-wiki/git-kurs-tagebuch.git * [new branch] main -> main Branch 'main' folgt nun 'origin/main'. max@pc:tagebuch$
Das Ergebnis auf dem Server sieht nun folgendermaßen aus:
Mit dem Befehl git clone https://codeberg.org/info-bw-wiki/git-kurs-tagebuch.git
kann nun jeder dieses Repo klonen und bearbeiten. Änderung auf den Server zu pushen ist allerdings erst nach Authentifizierung möglich. Allerdings könnte man im Klon den Origin erneut ändern (z.B. zu einem GitHub Repo) und seine Änderungen dann dorthin pushen.
error: Src-Refspec master entspricht keiner Referenz.
rührt daher, dass versucht wurde, den lokalen master
-Branch zum Origin zu pushen, der lokale Branch heißt aber main
, an dieser Stelle muss man also gegebenenfalls eingreifen und den korrekten Branch pushen