Umzug eines Repositories
via git push --mirror
Der manuelle Umzug per --mirror ist ideal, wenn du ein reines Git-Repository inklusive aller Branches, Tags und der kompletten Commit-Historie übertragen möchtest – ganz ohne GitHub-Tokens oder Metadaten wie PRs und Issues.
Hier ist der genaue Ablauf über das Terminal:
Erstelle einen temporären "Bare-Clone" des GitHub-Repositories. Dieser enthält nur die Git-Datenbank ohne Arbeitsverzeichnis:
git clone --bare https://github.com/nutzername/repository.git mirror-temp.git
cd mirror-temp.git
Pushe den gesamten Stand (alle Referenzen, Branches und Tags) per Mirror-Option zu Forgejo:
git push --mirror https://forgejo.dein-server.de/user/repo.git
(Wenn du SSH nutzt, verwende die SSH-URL: git push --mirror git@forgejo.dein-server.de:user/repo.git)
cd ..
rm -rf mirror-temp.git
cd dein-projekt-ordner
git remote set-url origin https://forgejo.dein-server.de/user/repo.git
git fetch origin
Was macht --mirror anders als ein normaler Push?
-
git push --allüberträgt nur alle lokalen Branches. -
git push --mirrorspiegelt den exakten Zustand aller Referenzen: Lokale Branches, Remote-Tracking-Branches, Tags sowie Notizen (refs/notes/). Es überschreibt das Ziel-Repository komplett, damit es exakt dem Quell-Repository entspricht.
No comments to display
No comments to display