Zum Inhalt

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.

Gib mir gerne einen Kaffee ☕ aus ❗️

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj

Source

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