Git - Forking ohne Github

7

Ist die Funktion von "forking" spezifisch für github? Oder gibt es einen reinen git-Prozess zum Erstellen von "kopierten" Child-Repositories, die Updates vom Parent abrufen können? Wenn ja, wie?

BEARBEITEN: Ich muss verwirrt sein, was git clone dann tut. Es war mein Verständnis, dass git clone ist, was ich auf meinem Rechner mache, um eine lokale Kopie des Repositorys zu erhalten, um Änderungen an commit und push vorzunehmen. Wir veranstalten derzeit unsere Repos mit Gitosis . Also, wenn ich eine "Gabel" begleiten wollte, würde ich das Repository auf dem Gitosis-Server selbst (am Ursprung) klonen? Würde das eine neue Git-Adresse erstellen?

    
jondavidjohn 18.01.2011, 19:59
quelle

4 Antworten

7

Sie wollen das wahrscheinlich nicht tun. Zweige in Git sind sehr schön und leicht, und es gibt wirklich keinen Grund, warum Sie nicht gerade einen Zweig in dem Repository machen sollten, das Sie gerade haben. Der einzige Grund, warum ich mir das mit einem Gitosis-Repository vorstellen kann, ist, um die Zugriffskontrolle interessant zu machen, wenn Sie eine kontinuierliche Deploy oder etwas haben, das aus einem gitosis repository stammt und Commit-Zugriff auf den gleichen Code geben möchte Ich möchte nicht, dass sie in der Lage sind, auf die zu schreiben, die eingesetzt wird. Für alle anderen Verwendungszwecke sollten Sie einfach einen Zweig mit git branch erstellen und all Ihre Arbeit an der Zweigstelle erledigen. Alternativ können Sie ein GitHub-Repository klonen und dann ein Team daran innerhalb Ihrer zentralen Gitosis-Architektur arbeiten lassen.

Wenn Sie die Vorwarnung angeben, besteht die einfachste Möglichkeit, einen "Fork" auf die beschriebene Weise zu erstellen, darin, ein separates Repository auf dem Gitosis-Server einzurichten. Richten Sie also ein anderes Repository mit dem anderen Namen ein - wenn Ihr ursprüngliches Repository beispielsweise gitosis@server:repo1.git ist, würden Sie ein anderes unter gitosis@server:repo1-fork.git einrichten. Fügen Sie die Benutzer hinzu, auf die Sie zugreifen möchten.

Dann würden Sie das Repository klonen: git clone gitosis@server:repo1.git , das eine vollständige Kopie des Repos in ./repo1 legt. Um es von Ihrer lokalen Version in das gegabelte Repository zu kopieren, können Sie git push gitosis@server:repo-fork.git --mirror ausführen.

    
jamuraa 18.01.2011, 20:53
quelle
6

Forking auf Github ist das Äquivalent zu einem einfachen git clone , obwohl es im Falle des Forks eher ein git clone --mirror ist.

    
Kevin Ballard 18.01.2011 20:04
quelle
4

Jedes Mal, wenn Sie git clone ein Repository haben, haben Sie effektiv eine Verzweigung erstellt. Das einzige, was die Fork-Funktionalität von GitHub tut, ist, den Klon zu einem GitHub-Repo zu machen, mit einer Webseite und Graphen und Statistiken und all diesen guten Sachen.

Wenn Sie ein Repository klonen, macht Git das ursprüngliche Repository automatisch zum standardmäßigen "Upstream" -Repo (das Remote namens origin ). Also, out of the box, git pull ohne Argumente sollte direkt aus dem Original ziehen.

    
Luke Maurer 18.01.2011 20:09
quelle
3
%Vor%     
Andrew Luca 05.10.2016 09:38
quelle

Tags und Links