2014-03-31 9 views
47

Ich habe ein Repository auf Github, das eine Webanwendung enthält, die in zwei verschiedenen Domänen bereitgestellt wird. Die Anwendung hat hier und da kleine Logikgabeln, die sich je nach der Domäne, auf der sie bereitgestellt wird, unterschiedlich verhalten.Kopieren/Fork ein Git Repo auf Github in die gleiche Organisation

Es ist an dem Punkt, wo ich es in zwei separate Repos, eine für jede Domäne teilen möchte.

Github wird mich nicht in die gleiche Organisation verzweigen lassen. Die Suche nach "git duplicate repo" legt nahe, dass ich Klon und Spiegelung pushen sollte, aber das scheint zu sein, um beide Repos synchron zu halten, was ich nicht tun möchte.

Was ist der beste Weg, um darüber zu gehen? Ich würde gerne den alten Commit-Verlauf in der neuen Kopie beibehalten, wenn möglich.

Antwort

64

Erstellen Sie einfach ein neues Repository und schieben, um es aus der Arbeitskopie:

git clone [email protected]:me/myrepo-original 
cd myrepo-original 
git remote set-url origin [email protected]:me/myrepo-new 
git push origin master 

Jetzt haben Sie ein neues Repository haben, myrepo-new, die myrepo-original identisch ist.

+2

Ok, und diese werden sich nicht verfolgen, oder? Das heißt, sie werden zu zwei getrennten getrennten Repos? Das ist, was ich will. – jemminger

+2

Kein Repository wird aktualisiert, es sei denn, Sie drücken explizit darauf, und das "neue" Repository zeigt keine Beziehung zum alten Repository an. – larsks

+0

Danke! Sieht so aus, als ob ich das brauche. – jemminger

4

Wenn Sie die Fork-Relation nicht benötigen (z. B. möchten Sie eine Art von entkoppeltem Repo, aus welchem ​​Grund auch immer), können Sie das Repo als Outlines nach Ihren Google-Suchanfragen duplizieren.

Wenn Sie tun wollen, dass es eine Gabel machen, kontaktieren Sie Github Unterstützung ([email protected] oder https://github.com/support), und sie werden für Sie eine Gabel in der gleichen Organisation. (Sie sind nicht wählerisch, dies entweder, müssen Sie nur einen alternativen Namen für den Repo zur Verfügung zu stellen, als Repo-Namen innerhalb eines Kontos muss eindeutig sein.)


aktualisieren: User Steve Reis berichtet In den Kommentaren unten hat GitHub Support angegeben, dass der Support derzeit keine zweite Verzweigung in Ihrem Konto einrichten wird. Sie können immer noch versuchen, sie zu fragen, da Support-Mitarbeiter dies möglicherweise tun können - aber dies könnte auch ein Richtlinienwechsel sein, der sie daran hindert, dies zu tun.

+3

Kontaktiert Unterstützung, ihre Antwort:" Zu diesem Zeitpunkt kann ein Konto nicht zwei Repos im selben Netzwerk besitzen. " Sie schlagen stattdessen vor, ein [Spiegel-Repo] (https://help.github.com/articles/duplicating-a-repository/) einzurichten. –

+0

ahw das ist scheiße.Entschuldigung, ich wusste nicht, dass sie ihre Politik geändert haben :( –

2

Eine andere Möglichkeit wäre das Hinzufügen des ursprünglichen Repos, das kopiert werden soll, als Remote für unser aktuelles Repo.

#create a new repo in the org1 organization called myrepo-new 

In Ihrem lokalen Terminal laufen:

git clone [email protected]:org1/myrepo-new 
cd myrepo-new 
git remote -v #shows current repo link on github as origin 
git remote add name-for-remote https://github.com/org1/repo-old 
git remote -v #shows repo-old as name-for-remote 
git fetch name-for-remote 
git merge name-for-remote/branch-to-get-from-remote 
#Now fix any conflicts if present 
#If number of files/commits is very high, the desktop client may hang when you try to commit your changes after merge. Try switching to Git Shell if this happens. 
git status 
git commit -m "commit message" 
git push origin master 
-1

kann nicht einfach in den lokalen Ordner kopieren, löschen Sie die Sachen git:

rm -rf .git* 

Dann ein neues Repository, dass machen Mappe? Es scheint sauberer und einfacher.

Verwandte Themen