Von Gitea zu Forgejo – Wie man bestehende Git Repo auf ein neues Repository über tragen kann

von Eric-Oliver Mächler | Sep. 20, 2025 | Allgemein | 0 Kommentare

Schlagwörter: Dockerforgejogiteayunohost

Wie ihr wisst, ich spiele gerne mit neuen Tools rum, und zwar ist es egal, ob es Elektronikbauteile sind oder Softwaretools. So kann es durchaus passieren, dass ich meinen Server so alle 3–6 Monate 1× komplett zerschiesse und neu aufsetzen muss. Das ist mir gerade wiedermal passiert.

Dumm gelaufen, sag ich da nur.

Der Grund war relativ traurig, und zwar bin ich ja kein SysAdmin, der Lust hat, täglich x Stunden sich mit SSH rumzuärgern. Ich verwende gerne SSH, wenn etwas schnell gehen muss (WordPress neu aufsetzen) oder automatisiert werden muss (Backup machen), darum verwende ich Yunohost.

Nun habe ich vor ein paar Wochen ein Yunohost Update gemacht und zack, lief mein Gitea Git Server nicht mehr. Irgendwas mit dem Restore-Script läuft nicht, wie es soll, und so konnte ich kein Git mehr verwenden. Am Anfang hat mich das nicht gestört, aber nach ein paar Wochen musste ich Git wieder verwenden können, weil ich ein paar Updates in meinen WordPress-Plugins machen musste.

Also habe ich mich entschieden, dass ich von Yunohost Gitea direkt über Docker Forgejo installieren möchte.

Mit Ach und Krach hat das geklappt. Aber jetzt muss ich meine lokalen Git-Kopien in den neuen Forgejo-Server hochladen.

Und hier ist die Anleitung, wie das am einfachsten geht – so dass ich es NIE wieder vergesse und auf diese Anleitung zurückgreifen kann.

Neue Repo anlegen

Also, ich will, dass ich nicht nur alle Daten wieder im Repo drin habe, sondern ich will auch, dass das alte Log mitübertragen wird.

Darum wähle ich das zu kopierende Git-Repo aus und erstelle direkt über die Forgejo-Weboberfläche ein neues Repo (z. B. ≪tester≫).

Daten: Alt auf neu kopieren

Ich habe ja alle lokalen Git-Clones in einem Ordner „Gitea“ abgelegt. Jetzt erstelle ich einen neuen Hauptordner „Forgejo“ und kopiere dann den ganzen alten Ordner ≪tester≫ in diesen Ordner.

Nun heisst also der lokale Ordner genauso wie das Online-Repo.

Git Hochladen

Nun öffne ich das Terminal in diesem neuen Ordner ≪tester≫ und kann nun die Verbindung vom lokalen Repo zum Online-Repo neu eintragen.

git remote set-url origin ssh://git.mein.server/emaechler/tester

Und jetzt sind ja noch alle Files lokal drin, aber noch nicht online verfügbar – also müssen wir sie nun hochladen, und zwar alles – inkl. Log usw.

Das macht man dann mit dem folgenden Git-Befehl:

git push -u origin --all

Wenn nun keine Errormeldungen aufploppen, sollten alle lokalen Daten nun online im Git-Repo verfügbar sein, und wir können wieder damit arbeiten.

Error Meldungen

Wenn jetzt eine Fehlermeldung passiert, habe ich ein paar Lösungen für euch.

Ich gehe davon aus, dass ihr den Token erstellt habt und auch die SSH-Verbindung in Forgejo gesichert habt.

Checkt dann mit dem folgenden Befehl, ob der Port (22) erreichbar ist:

nc -vz git.mein.server 22

Mein Hauptfehler war die SSH-Config-Datei, die falsch war.

Finden tut ihr diese Datei unter

nano ~/.ssh/config

Und da sollte sowas stehen wie

Host git.mein.server
    HostName git.mein.server
    Port 22       # der externe SSH-Port, den du freigegeben hast
    User git
    IdentityFile ~/.ssh/ssh-geheimkey-für-forgejo

Hier müsst ihr checken, ob der SSH-Key korrekt eingetragen ist, die Portnummer stimmt und auch der Hostname mit der Git-URL übereinstimmt.

Mit diesen 3 Lösungen habe ich meine Probleme alle beheben können.

So nun werde ich diese Anleitung nicht mehr vergessen und ihr hoffentlich auch nicht mehr.

0 Kommentare

Einen Kommentar abschicken

Du kannst auf Fediverse-Profile verlinken, indem du fl:@benutzername in deinem Kommentar eingibst.

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