Ich habe einen Server, den ich herunterfahre. Das einzige, was ich noch migrieren muss, ist mein Repository. Dieser Server wird als Ursprung (Master) für eines meiner Projekte aufgeführt. Was ist der richtige Weg, um das Repository zu verschieben, um den Verlauf zu behalten?
263
Antworten:
Um den neuen Repo-Standort hinzuzufügen,
Schieben Sie dann den Inhalt an den neuen Speicherort
Zum Schluss den alten entfernen
Danach können Sie das tun, was bdonlan gesagt hat, und die Datei git / config bearbeiten, um den Namen new_repo_name in origin zu ändern. Wenn Sie den Ursprung (ursprüngliches Remote-Repository) nicht entfernen, können Sie einfach Änderungen am neuen Repo mit übertragen
quelle
git push -u new_repo_name --all
.git remote rename new_repo_name origin
Wenn Sie alle Zweige und Tags migrieren möchten, sollten Sie die folgenden Befehle verwenden:
das alte Repo mit allen Zweigen zu klonen
um eine neue Fernbedienung einzurichten
um alle Refs unter Refs / Köpfe zu schieben (was wahrscheinlich das ist, was Sie wollen)
quelle
--tags
undrefs/heads/*:refs/heads/*
ist nicht kompatibel mit--mirror
. stackoverflow.com/a/26552740/1484831 hat gut funktioniert.refs/heads/refs/heads
,git push -f --tags remoteName refs/heads/*:refs/heads/*
also habe ich zugit push remoteName --mirror
push
unterstützt auch--mirror
.git clone --mirror; cd repo; git push --mirror new_remote
sollte den Trick machenDas hat bei mir einwandfrei funktioniert .
Ich muss jedoch erwähnen, dass dies einen Spiegel Ihres aktuellen Repos erzeugt und diesen dann an den neuen Ort schiebt. Daher kann dies bei großen Repos oder langsamen Verbindungen einige Zeit dauern .
quelle
git push --mirror origin
als-f
.Kopieren Sie es über. So einfach ist das wirklich. :) :)
Bearbeiten Sie auf der Clientseite einfach .git / config im lokalen Repo des Clients, um Ihre Fernbedienungen nach Bedarf auf die neue URL zu verweisen.
quelle
Dies geschieht in einigen anderen Antworten teilweise.
quelle
--mirror
im Push ist sehr wichtig: Dies sollte die richtige Antwort seingit init --bare
Ich reposte nur, was andere gesagt haben, in einer einfach zu befolgenden Liste von Anweisungen.
Verschieben des Repositorys: Melden Sie sich einfach beim neuen Server
cd
in dem übergeordneten Verzeichnis an, in dem Sie jetzt das Repository speichern möchten, undrsync
kopieren Sie es vom alten Server:Clients auf das neue Repository verweisen lassen: Entfernen Sie nun auf jedem Client, der das Repository verwendet, einfach den Zeiger auf den alten Ursprung und fügen Sie einen zum neuen hinzu.
quelle
git remote set-url origin [email protected]:path/to/repository.git
Schauen Sie sich dieses Rezept auf GitHub an: https://help.github.com/articles/importing-an-external-git-repository
Ich habe eine Reihe von Methoden ausprobiert, bevor ich sie entdeckte
git push --mirror
.Lief wie am Schnürchen!
quelle
git clone --mirror ...
,git remote add ...
,git push --mirror ...
Ich habe die Anweisungen auf BitBucket befolgt, um ein Repo mit all seinen Zweigen dorthin zu verschieben. Hier kommen die Schritte mit Erklärungen nach dem
#
Zeichen:Hat gut für mich funktioniert.
quelle
Bitte folgen Sie den Schritten:
quelle
Dies ist eine Variation dieser Antwort , die derzeit von gitlab vorgeschlagen wird , um ein Git-Repository von einem Server auf einen anderen zu "migrieren".
Nehmen wir an, Ihr altes Projekt wird aufgerufen
existing_repo
und in einemexisting_repo
Ordner gespeichert .Erstellen Sie ein Repo auf Ihrem neuen Server. Wir gehen davon aus, dass die URL dieses neuen Projekts lautet
git@newserver:newproject.git
Öffnen Sie eine Befehlszeilenschnittstelle und geben Sie Folgendes ein:
Der Vorteil dieses Ansatzes besteht darin, dass Sie den Zweig, der Ihrem alten Server entspricht, nicht löschen.
quelle
Sie können den folgenden Befehl verwenden:
Beispiel von http://gitref.org/remotes/
quelle
Sollte so einfach sein wie:
Auf diese Weise behalten Sie den Namen
origin
für Ihr neues Repo bei und drücken dann das alte Repo auf das neue Repo, wie in den anderen Antworten beschrieben. Angenommen, Sie arbeiten alleine und haben ein lokales Repo, das Sie mit all Ihrer Cruft spiegeln möchten. Sie können dies auch tun (aus Ihrem lokalen Repo heraus).aber siehe Ist "git push --mirror" ausreichend, um mein Repository zu sichern? (insgesamt
--mirror
nur einmal verwenden).quelle
Befolgen Sie diese Anweisungen, wenn Sie alle Commits und Zweige vom alten zum neuen Repo beibehalten möchten
quelle
Sie können git-copy verwenden , um das Repo mit allen Historien zu duplizieren.
quelle
Wenn Sie von einem Ursprung zu einem anderen wechseln und auch eine Sicherungskopie Ihres aktuellen Ursprungs auf Ihrem lokalen Computer erstellen möchten, können Sie die folgenden Schritte ausführen:
Jetzt im Ordner tun
Der obige Befehl gibt die aktuelle URL des Remote-Ursprungs an, die nützlich ist, um den Ursprung im letzten Schritt zurückzusetzen
Der obige Befehl setzt den Remote-Ursprung auf den neuen Speicherort
Mit dem obigen Befehl wird die aktuell aktive lokale Verzweigung mit dem Namen "Verzweigungsname" auf "Remote" verschoben. Natürlich bewahrt es die gesamte Geschichte, da mit git auch die gesamte Geschichte vorangetrieben wird.
Mit dem obigen Befehl wird der Remote-Ursprung auf Ihren aktuellen Ursprung zurückgesetzt: Sie möchten dies, weil Sie sich in Ihrem vorhandenen Ordner befinden und Ihren aktuellen lokalen Ordnernamen wahrscheinlich nicht mit dem neuen Ordner verwechseln möchten, den Sie zum Klonen des Repos erstellen möchten du hast gerade dazu gedrängt.
Hoffe das hilft,
quelle
Wenn Sie ein # Git-Repository von einem Server auf einen neuen migrieren möchten, gehen Sie folgendermaßen vor:
Alle entfernten Zweige und Tags aus dem alten Repository werden in das neue Repository kopiert.
Führen Sie diesen Befehl alleine aus:
würde nur einen Hauptzweig (nur Nachverfolgungszweige) in das neue Repository kopieren.
quelle