Angenommen, ich habe ein Repository auf git.fedorahosted.org und möchte dieses in mein Konto bei github klonen, um neben dem "offiziellen" Repo auf fedorahosted einen eigenen Spielplatz zu haben. Was wären die Schritte, um das zunächst zu kopieren? In Github gibt es diesen schönen "Gabel" -Button, aber ich kann ihn aus offensichtlichen Gründen nicht verwenden.
Und wie würde ich Änderungen im Fedorahosted-Repo im Github-Repo verfolgen?
origin
auf den kanonischen entfernten Ort hinweist. In diesem Fall wäre der Github-Ort vermutlich der kanonische.git remote add
. Sie können dann zu einem von ihnen wechseln, indem Sie die Fernbedienung explizit angebengit push
. ZBgit push foobar master
um den aktuellen Zweigmaster
auf Remote zu schiebenfoobar
.Es gibt eine gelöschte Antwort auf diese Frage, die einen nützlichen Link hatte: https://help.github.com/articles/duplicating-a-repository
Das Wesentliche ist
OPs Beispiel:
Auf Ihrem lokalen Computer
quelle
error: failed to push some refs to 'https://github.com/username/testrep.git'
Um Ihr bestehendes Repo in ein anderes zu verschieben, müssen Sie:
Klonen Sie zuerst das Original-Repo.
Verschieben Sie die geklonten Quellen in Ihr neues Repository:
Sie können
master:master
insource:destination
Zweig wechseln .Wenn Sie ein bestimmtes Commit (Zweig) pushen möchten, gehen Sie wie folgt vor:
Erstellen und checken Sie auf dem ursprünglichen Repo einen neuen Zweig aus:
Wählen Sie und setzen Sie auf den Punkt zurück, mit dem Sie beginnen möchten:
Alternativ können Sie das Commit auswählen, um es
git cherry-pick
an den vorhandenen HEAD anzuhängen.Dann schieben Sie zu Ihrem neuen Repo:
Wenn Sie neu gründen, verwenden Sie
-f
für Force Push (nicht empfohlen). Ausführengit reflog
, um den Änderungsverlauf anzuzeigen.quelle
git push ... old_branch_name:new_branch_name
können Sie einen Feature-Zweig aus dem alten Repository als Hauptzweig in das neue Repository verschieben. Nützlich!Möchten Sie Ihr lokales Repository (mit seinen lokalen Zweigen usw.) wirklich einfach auf die neue Fernbedienung verschieben oder möchten Sie die alte Fernbedienung (mit all ihren Zweigen, Tags usw.) wirklich auf die neue Fernbedienung spiegeln? Wenn letzteres der Fall ist, finden Sie hier einen großartigen Blog zum richtigen Spiegeln eines Git-Repositorys .
Ich empfehle Ihnen dringend, den Blog für einige sehr wichtige Details zu lesen, aber die Kurzversion lautet wie folgt:
Führen Sie in einem neuen Verzeichnis die folgenden Befehle aus:
quelle
Versuchen Sie Folgendes: So verschieben Sie ein vollständiges Git-Repository
Erstellen Sie ein lokales Repository im temporären Verzeichnis mit:
Git Clone Temp-Dir
Gehen Sie in das temporäre Verzeichnis.
Um eine Liste der verschiedenen Zweige in ORI anzuzeigen, gehen Sie wie folgt vor:
Überprüfen Sie alle Zweige, die Sie von ORI nach NEW kopieren möchten, mit:
Rufen Sie nun alle Tags von ORI ab mit:
Bevor Sie den nächsten Schritt ausführen, überprüfen Sie Ihre lokalen Tags und Zweige mit den folgenden Befehlen:
Löschen Sie nun den Link zum ORI-Repository mit dem folgenden Befehl:
Verknüpfen Sie nun Ihr lokales Repository mit dem folgenden Befehl mit Ihrem neu erstellten NEUEN Repository:
Drücken Sie nun alle Ihre Zweige und Tags mit den folgenden Befehlen:
Sie haben jetzt eine vollständige Kopie von Ihrem ORI-Repo.
quelle
Ich habe eine Lösung mit set-url gefunden, die präzise und ziemlich einfach zu verstehen ist :
cd
in das vorhandene Repository auf Ihrem lokalen Computer (wenn Sie es noch nicht geklont haben, tun Sie dies zuerst)git remote set-url origin https://github.com/user/example.git
git push -u origin master
quelle
Wenn Sie ein vorhandenes Git-Repository haben:
quelle
Zeigen Sie einfach auf das neue Repo, indem Sie die GIT-Repo-URL mit diesem Befehl ändern:
Beispiel:
git remote set-url origin [email protected]:Batman/batmanRepoName.git
Jetzt ist Drücken und Ziehen mit dem neuen REPO verbunden.
Dann drücken Sie normal wie folgt:
quelle
Ich hatte das gleiche Problem.
In meinem Fall habe ich, da ich das ursprüngliche Repository auf meinem lokalen Computer habe, eine Kopie in einem neuen Ordner ohne versteckte Datei (.git, .gitignore) erstellt.
Schließlich habe ich die .gitignore-Datei zum neu erstellten Ordner hinzugefügt.
Dann habe ich das neue Repository über den lokalen Pfad erstellt und hinzugefügt (in meinem Fall mit GitHub Desktop).
quelle
Hier ist eine manuelle Vorgehensweise
git remote set-url origin [new repo URL]
:git clone <old remote>
Öffnen
<repository>/.git/config
und ändern Sie die Fernbedienung (die URL-Option)
Schieben Sie das Repository auf GitHub:
git push
Sie können auch beide / mehrere Fernbedienungen verwenden .
quelle