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.
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
Seit Anfang des Jahrtausends absolut Linux-begeistert und Fan von Open Source. Raspberry Pi Bastler der ersten Stunde und nach wie vor begeistert von dem kleinen Stück Hardware, auf dem
er tolle Projekte umsetzt. Teilt hier seine Erfahrungen mit Nextcloud, Pi-hole, YubiKey und zu anderen spannenden IT-Themen. Nutzt
beruflich viel Excel. Sitzt vor einem riesen 49″ Monitor, nutzt Windows zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und Musik über seinen RadioPi.
(**) 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.