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.
bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj
Bildquelle: Gemeinfrei-ähnlich freigegeben durch unsplash.com Yancy Min

ist absolut technik-begeistert und großer Fan von Linux und 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, Synology und openmediavault und anderen spannenden IT-Themen. Nutzt Markdown und LaTeX zum Dokumentieren seiner Projekte und Gitea zum Versionieren. Sitzt vor einem 49“ Monitor, nutzt Windows und MacOS zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und MP3s und Radio-Streams über seinen RadioPi.