Git-Repos auf einen neuen Server umziehen

In meinem letzten Beitrag habe ich Gitea auf meinem eigenen Git-Server installiert und eingerichtet. Meine bestehenden Git-Repos sind nun an den neuen Server zu übertragen und dort einzutragen, damit sie von Gitea ordentlich verwaltet werden.

Der Prozess ist einfach und schnell durchgeführt und mit drei Befehlen in der Git Bash erledigt.

Bei mir habe ich das bare-Repository auf meinem Git-Server ohne eine grafische Oberfläche wie Gitea verwaltet. Ich habe deshalb ganz einfach meine bare-Repos in das Home-Verzeichnis meines Benutzers gepusht. Für die Git-Repositories spielt es keine Rolle in welchem Verzeichnis ihr die Dateien verwalteten lasst. Damit alles funktioniert muss im jeweiligen Working-Repository, also dem lokalen Repo, in der Datei “/.git/config” der richtige Server mit der richtigen Adresse und dem Pfad zum bare-Repo eingetragen sein.

 

Für eine bessere Darstellung verwende ich die beiden Bezeichnungen und dazugehörigen IP-Adressen

  • Alter Git-Server – 192.168.178.2
  • Neuer Git-Server – 192.168.178.3

 

Wechselt ihr euer Repo auf einen anderen Server ist damit lediglich eine Anpassung der “/.git/config” erforderlich. Danach arbeitet ihr dann sogleich auf dem neuen Git-Server weiter.

Holt euch also vor dem Umzug erst einmal die ganzen Aktualisierungen in euer Working-Repo bevor ihr weitermacht. Anschließend erstellt zur Sicherheit ein Backup des gesamten Ordners.

Wenn ihr nun einfach versucht euer Git-Repository wie in Gitea angezeigt an den neuen Git-Server zu übertragen, dann erhaltet ihr die folgende Fehlermeldung:

git remote add origin git@192.168.178.2:benutzername/name-bare-repo.git
fatal: remote origin already exists.

Also muss zuerst der “alte” Git-Server aus eurer “/.git/config” gelöscht werden und dann durch die Adresse des “neuen” Git-Servers ersetzt werden.

1. Löschen des alten Git-Servers

git remote rm origin 

2. Eintragen des neuen Git-Servers

git remote add origin git@192.168.178.3:benutzername/wichtiges-git-repo.git

Zum Abschluss werden dann alle Dateien und Einstellungen auf den neuen Server übertragen.

git push -u origin master

Was genau passiert in der .gitconfig?

Es passiert nichts wirklich spektakuläres in der “/.git/config”.
Was genau passiert ist hier dargestellt.

Alter Git-Server

[remote "origin"]
url = ssh://benutzername@192.168.178.2:/home/benutzername/git/wichtiges-git-repo.git
fetch = +refs/heads/:refs/remotes/origin/

Neuer Git-Server

[remote "origin"]
url = git@192.168.178.3:benutzername/wichtiges-git-repo.git
fetch = +refs/heads/:refs/remotes/origin/

Ihr könnt euren eigenen Git-Server auch auf einem Raspberry Pi laufen lassen. Dazu könnt ihr die gleiche Hardware verwenden, die ich auch für meine Nextcloud verwende.

Für meine Nextcloud verwende ich die folgende Hardware.
AffiliateLinks/Werbelinks / Bildquelle: Amazon-Partnerprogramm / (**)
Die drei unterschiedlichen Speicher verwende ich für:
  • SD-Karte - Betriebssystem Raspberry Pi OS
  • Festplatte - für das Nextcloud Daten-Verzeichnis ("datadirectory") und das temporäre Verzeichnis ("tempdirectory")
  • USB-Stick - Nextcloud-Datensicherung, komplettes Backup der SD-Karte und Sicherung von Adressbüchern und Kalender

Bildquelle: Gemeinfrei-ähnlich freigegeben durch unsplash.com Yancy Min

(**) Produktpreise und -verfügbarkeit sind zum angegebenen Datum / Uhrzeit korrekt und können sich ändern. Alle Preis- und Verfügbarkeitsinformationen auf https://www.amazon.de/ zum Zeitpunkt des Kaufs gelten für den Kauf dieses Produkts.

Schreibe einen Kommentar

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