Ich habe ein Repo auf Github, das eine Webanwendung enthält, die auf zwei verschiedenen Domänen bereitgestellt wird. Die Anwendung verfügt hier und da über leichte Logikgabeln, die sich je nach Domäne, in der sie bereitgestellt wird, unterschiedlich verhalten.
Es ist an dem Punkt angelangt, an dem ich es in zwei separate Repos aufteilen möchte, eines für jede Domain.
Github lässt mich nicht in dieselbe Organisation einteilen. Wenn ich nach "git duplicate repo" suche, sollte ich es einfach klonen und spiegeln, aber das scheint dazu zu dienen, beide Repos synchron zu halten, was ich nicht tun möchte.
Was ist der beste Weg, um dies zu erreichen? Ich möchte den alten Commit-Verlauf möglichst in der neuen Kopie beibehalten.
git clone --bare
undgit push --mirror
Optionen genau das, was Sie wollen. Dies hält nicht beide Repos synchron. Es wird jedoch alles beibehalten , einschließlich aller Zweige, Tags usw. Führen Sie dies einfach in einem temporären Verzeichnis aus, um eine Kopie zu erstellen. Klonen Sie dann die neue Kopie direkt von Ihrer Fernbedienung in Ihr Projektverzeichnis.Antworten:
Erstellen Sie einfach ein neues Repository und verschieben Sie es von Ihrer Arbeitskopie darauf:
Jetzt haben Sie ein neues Repository
myrepo-new
, das mit identisch istmyrepo-original
.quelle
push
weisen ausdrücklich darauf hin, und das "neue" Repository zeigt keine Beziehung zum alten an.git push --all origin
Wenn Sie die Gabelbeziehung nicht benötigen (z. B. aus irgendeinem Grund eine Art entkoppeltes alternatives Repo möchten), ist es in Ordnung, das Repo als Umrisse Ihrer Google-Funde und der Antwort von Larsks zu duplizieren.
Wenn Sie es zu einer Gabel machen möchten, wenden Sie sich an den Github-Support ([email protected] oder https://github.com/support ), und er erstellt eine Gabel in derselben Organisation für Sie. (Sie sind auch nicht wählerisch, Sie müssen nur einen alternativen Namen für das Repo angeben, da die Reponamen in einem Konto eindeutig sein müssen.)
Update : Benutzer Steve Rice berichtet in den Kommentaren unten, dass der GitHub-Support angegeben hat, dass der Support derzeit keine zweite Abzweigung in Ihrem Konto einrichten würde.
GitHub hat kürzlich einen Artikel über mögliche Alternativen zum Aufteilen eines Repos in dasselbe Konto veröffentlicht. Sie können diesen Artikel hier lesen .
quelle
Verwenden Sie die Option " Repository importieren" von Github im Menü + oben auf der Seite oder öffnen Sie sie einfach
https://github.com/new/import
Dadurch wird ein neues Repository mit dem genauen Inhalt des kopierten Repositorys erstellt. Der Nachteil (der gleiche wie bei Git-Befehlen, die von Iarsks beantwortet werden ) ist, dass es für Github nicht als Gabel zählt.
quelle
Eine andere Möglichkeit wäre, das zu kopierende Original-Repo als Remote für unser aktuelles Repo hinzuzufügen.
Führen Sie in Ihrem lokalen Terminal Folgendes aus:
quelle
Alternative Lösung:
Erstellen Sie eine neue Organisation und teilen Sie sie dort auf. Wenn das Repo privat ist, bleibt es auch in der neuen Organisation privat. Dann können Sie externen Entwicklern oder wem auch immer Sie Zugriff auf das gegabelte Repo gewähren und diese können PRs wieder auf das ursprüngliche Repo bringen.
quelle
Könntest du nicht einfach den lokalen Ordner duplizieren, das Git-Zeug löschen:
Dann ein neues Repository in diesem Ordner erstellen? Scheint sauberer und einfacher.
quelle
./.git/
würde nicht mit der vom OP erklärten Absicht helfen, "den alten Festschreibungsverlauf in der neuen Kopie nach Möglichkeit beizubehalten".