Ich versuche, nur den Inhalt eines repo1
Repositorys ( repo2
) mit den folgenden Befehlen in ein anderes vorhandenes Repository ( ) zu verschieben:
git clone repo1
git clone repo2
cd repo1
git remote rm origin
git remote add repo1
git push
Aber es funktioniert nicht. Ich habe einen ähnlichen Beitrag überprüft, aber nur einen gefunden, der den Ordner verschiebt, nicht den Inhalt.
git
merge
repository
migrate
Mario
quelle
quelle
Antworten:
Ich denke, die Befehle, nach denen Sie suchen, sind:
Danach
repo2/master
wird alles vonrepo2/master
und enthaltenrepo1/master
, und wird auch die Geschichte von beiden haben.quelle
repo1
in einen Unterordner (innerhalbrepo1
) zu verschieben, bevor Sie die Zusammenführung durchführen.Perfekt beschrieben hier https://www.smashingmagazine.com/2014/05/moving-git-repository-new-server/
Zuerst müssen wir alle Remote-Zweige und -Tags aus dem vorhandenen Repository in unseren lokalen Index abrufen:
Wir können nach fehlenden Zweigen suchen, die wir benötigen, um eine lokale Kopie von zu erstellen:
Verwenden wir die SSH-geklonte URL unseres neuen Repositorys, um eine neue Fernbedienung in unserem vorhandenen lokalen Repository zu erstellen:
Jetzt können wir alle lokalen Zweige und Tags auf die neue Fernbedienung mit dem Namen new-origin übertragen:
Machen wir new-origin zur Standardfernbedienung:
Benennen Sie new-origin in just origin um, damit es zur Standardfernbedienung wird:
quelle
git checkout BranchName
dann den Zweig erneut auf Remote Repo drücken,git push --all new-origin
aber vielen DankWenn Sie die vorhandenen Zweige beibehalten und die Historie festlegen möchten, haben Sie hier eine Möglichkeit gefunden.
Angenommen, Sie möchten die Quell- und Ziel-Repos für einen bestimmten Zeitraum synchron halten. Beispielsweise gibt es im aktuellen Remote-Repo noch Aktivitäten, die Sie auf das neue / Ersatz-Repo übertragen möchten.
So rufen Sie die neuesten Updates ab (vorausgesetzt, Sie haben keine lokalen Änderungen):
NB: Ich habe noch keine Submodule verwendet, daher weiß ich nicht, welche zusätzlichen Schritte erforderlich sein könnten, wenn Sie sie haben.
quelle
Einfachster Ansatz: Wenn der Code bereits von Git verfolgt wird, legen Sie ein neues Repository als Ihren "Ursprung" fest, zu dem Sie pushen möchten.
quelle
Dies funktionierte, um mein lokales Repo (einschließlich Verlauf) auf mein Remote-Repo von github.com zu verschieben. Nachdem ich das neue leere Repo bei GitHub.com erstellt habe, verwende ich die URL in Schritt drei unten und es funktioniert großartig.
Ich fand dies unter: https://gist.github.com/niksumeiko/8972566
quelle
Ich habe die folgende Methode verwendet, um meinen GIT-Stash nach GitLab zu migrieren, indem ich alle Zweige und den Commit-Verlauf verwaltet habe.
Klonen Sie das alte Repository auf lokal.
Erstellen Sie ein leeres Repository in GitLab.
quelle
Es sieht so aus, als ob du nah dran bist. Angenommen, es ist nicht nur ein Tippfehler in Ihrer Einreichung, sollte Schritt 3
cd repo2
anstelle von repo1 sein. Und Schritt 6 solltegit pull
nicht drücken. Überarbeitete Liste:quelle
Laut @ Dan-Cohn Antwort Mirror-Push ist dein Freund hier. Dies ist meine Aufgabe für die Migration von Repos:
Ein Repository spiegeln
1.Öffnen Sie Git Bash.
2.Erstellen Sie einen nackten Klon des Repositorys.
3.Mirror-Push in das neue Repository.
4.Entfernen Sie das temporäre lokale Repository, das Sie in Schritt 1 erstellt haben.
Referenz und Gutschrift: https://help.github.com/de/articles/duplicating-a-repository
quelle
Hier gibt es viele komplizierte Antworten; Wenn Sie sich jedoch nicht mit der Erhaltung von Zweigen befassen, müssen Sie lediglich den Remote-Ursprung zurücksetzen, den Upstream einstellen und pushen.
Dies hat dazu beigetragen, die gesamte Commit-Historie für mich zu bewahren.
quelle