Eine kleine Anleitung, wie man ein Repository von einem git zu einem anderen umzieht und den kompletten Verlauf erhält – also ein 1:1 Klon, des alten Repositories. Anhand des Beispiels von Gitlab zu Github.
Dieser Prozess verwendet einen sogenannten „Bare Clone“, der eine exakte Kopie deines Repositories ohne einen Arbeitsordner erstellt – perfekt für eine 1:1-Migration.
Voraussetzungen
- Git muss auf deinem lokalen Rechner installiert sein.
- Du benötigst die URL deines GitLab-Repositories (am besten die SSH-URL).
- Du musst ein neues, leeres Repository auf GitHub erstellt haben. Initialisiere es nicht mit einer
README
– oder.gitignore
-Datei. Du brauchst nur die URL dieses leeren Repositories.
Schritt-für-Schritt-Anleitung
1. Erstelle einen „Bare Clone“ deines GitLab-Repositories clone
Führe diesen Befehl in deinem Terminal aus. Er lädt eine vollständige Kopie der Git-Datenbank herunter. Ersetze die URL durch deine eigene.
git clone --bare https://gitlab.com/DEIN-BENUTZERNAME/DEIN-REPO.git
Dieser Befehl erstellt einen neuen Ordner, der normalerweise auf .git
endet (z.B., DEIN-REPO.git
).
2. Wechsle in das neue Verzeichnis 📁
Navigiere in den gerade erstellten Ordner.
cd DEIN-REPO.git
3. Pushe das Repository nach GitHub 🚀
Jetzt schiebst du den kompletten Klon mit dem --mirror
-Flag zu deinem neuen, leeren GitHub-Repository. Dies stellt sicher, dass alle Branches, Tags und Commits 1:1 übertragen werden. Ersetze die URL durch die deines neuen GitHub-Repos.
git push --mirror https://github.com/DEIN-BENUTZERNAME/DEIN-NEUES-REPO.git
Der Push-Vorgang kann je nach Größe deines Repositories eine Weile dauern.
4. Räume die lokale Kopie auf 🧹
Nachdem der Push erfolgreich war, benötigst du den lokalen .git
-Ordner nicht mehr. Du kannst ihn sicher löschen.
cd ..
rm -rf DEIN-REPO.git
Überprüfung
Das war’s schon! Gehe nun auf deine GitHub-Seite. Du solltest sehen, dass das Repository vollständig gefüllt ist und der Commit-Verlauf, alle Branches und Tags mit deinem GitLab-Repository identisch sind. Du kannst das Projekt jetzt wie gewohnt von GitHub klonen, um damit zu arbeiten.