Wie kann ich eine Gabel vom Original aus synchronisieren?

12032
bAN

Ich habe gerade ein Projekt in Github gegabelt. Ich habe Änderungen vorgenommen und eine Pull-Anfrage gesendet. Der Besitzer hat meine Gabel mit dem Hauptprojekt zusammengeführt und danach einige Änderungen vorgenommen. Daher wird meine Gabel vorerst nicht mit dem Hauptprojekt aktualisiert. Ich vermisse die Änderungen, die er nach dem Zusammenführen meiner Pull-Anfrage vorgenommen hat. Wie kann ich meine Fork mit dem Main-Projekt aktualisieren? Gibt es eine Möglichkeit, dies in der Weboberfläche zu tun?

Vielen Dank

33
Ich schreibe eine einfache Anweisung. check out hier: http://webapps.stackexchange.com/a/58140/63016 Youngjae vor 10 Jahren 0
Es gibt jetzt ein offizielles Dokument, das gut gemacht wurde: https://help.github.com/articles/syncing-a-fork Andre Miras vor 10 Jahren 1

2 Antworten auf die Frage

36
Mechanical snail

Wenn Sie ein Projekt forken, wird ein separates Repo erstellt, das nicht aktualisiert wird, wenn sich das ursprüngliche Repo ändert. Allerdings gitmacht es recht einfach manuell zu aktualisieren.

Sie benötigen die Hilfe eines dritten Repositorys (Ihre lokale Kopie genügt). Es gibt 3 Repos:

  • "Upstream": Das Repository des Upstream-Projekts auf Github.
  • "Origin": Das Repository Ihrer Gabel auf Github
  • "Local": Ihr lokales Repository auf Ihrem Computer. Ich gehe davon aus, dass Sie es erstellt haben, indem Sie Fork mit geklont haben git clone git@github.com:your-username/projectname.git, und dass jeder Zweig verwendet master.

Angenommen, "Origin" und "Local" befinden sich derzeit im gleichen Status und "Upstream" liegt um mindestens 1 Commit (die Zusammenführung und alle nachfolgenden Änderungen).

Fügen Sie zunächst das Upstream-Projekt als Git-Remote hinzu :

git remote add upstream https://github.com/upstream-username/projectname.git 

Dann ziehen (was bedeutet, holt und dann verschmelzen automatisch) die Änderungen von dem der Remote - masterNiederlassung in Ihren lokalen Repository des aktuellen ( master) Zweig:

git pull upstream master 

Jetzt ist Ihr lokales Repository mit synchronisiert upstream. Schieben Sie schließlich Ihr lokales Repo an Ihre Github-Gabel:

git push origin master 

Jetzt ist alles synchron.

Vielen Dank .. es ist eine Schande, dass dies möglicherweise nicht in der Weboberfläche gemacht werden kann .. bAN vor 11 Jahren 2
Dies ist in der Tat auf der Weboberfläche möglich: http://webapps.stackexchange.com/a/31010/10390 thSoft vor 11 Jahren 1
Yeehaw! Ich hatte mir die Haare ausgerissen, als ich versucht hatte, diese expliziten Informationen zu finden. Danke für das Teilen! pepoluan vor 9 Jahren 0
... aber werfen Sie auch einen Blick auf die Antwort der Antwort, die belegt, dass Resync via Web nicht die beste Option ist, da das Repository verschmutzt wird usr-local-ΕΨΗΕΛΩΝ vor 9 Jahren 0
was machst du, wenn es nach dem pull "schon aktuell" sagt, aber offensichtlich nicht? (es gibt Dateien, die ich alle in einem Unterverzeichnis geändert habe, und ich sollte keine Unterschiede in anderen Dateien haben, aber ich mache es) roberto tomás vor 9 Jahren 0
1
VonC

Sie müssen eine Fernbedienung hinzufügen (siehe GitHub-Hilfe ) und von dieser neuen Fernbedienung abziehen.

git remote add mainProject https://github.com/user/mainProject git pull mainProject master