Wie synchronisiere ich mit einem entfernten Git-Repository?

92

Ich habe ein Projekt auf Github gegabelt, einige Änderungen vorgenommen, soweit so gut.

In der Zwischenzeit hat sich das Repository, aus dem ich gegabelt habe, geändert, und ich möchte diese Änderungen in mein Repository übernehmen. Wie mache ich das ?

George Profenza
quelle

Antworten:

76

Im Allgemeinen git pullist genug, aber ich bin nicht sicher, welches Layout Sie gewählt haben (oder Github für Sie gewählt hat).

Šimon Tóth
quelle
4
Git Pull funktioniert nur, wenn Sie die Fernbedienung zum Abrufen und den Zweig zum Zusammenführen konfiguriert haben.
Abizern
Ich gehe davon aus, dass dies während der Phase "Gabel machen" gemacht wurde. Sofern diese Informationen nicht weggeworfen wurden, sollten sie immer noch vorhanden sein.
Šimon Tóth
Die Verwendung von Git Pull mit https hat nicht funktioniert, aber mit http hat es funktioniert ... jetzt bin ich auf dem neuesten Stand, danke!
George Profenza
@ GeorgeProfenza Das ist nicht sicher. ssh
Erwägen
65

Angenommen, ihre Aktualisierungen befinden sich auf dem Master und Sie befinden sich in dem Zweig, in dem Sie die Änderungen zusammenführen möchten.

git remote add origin https://github.com/<github-username>/<repo-name>.git
git pull origin master

Beachten Sie auch, dass Sie die Zusammenführung dann auf Ihre Kopie des Repositorys zurückschieben möchten:

git push origin master
Mark Hibberd
quelle
Hinzufügen funktioniert, Ziehen nicht :(, Ich habe einen Fehler im Zusammenhang mit https: Fehler: Protokoll https in libcurl beim Zugriff auf github.com/mrdoob/three.js.git/info/refs nicht unterstützt oder deaktiviert fatal: HTTP-Anforderung fehlgeschlagen Hinweise?
George Profenza
Welche Plattform? Es sieht so aus, als ob eine der Abhängigkeiten von git nicht vollständig ist.
Mark Hibberd
Um dies zu umgehen, können Sie auch das Git-Protokoll anstelle von https verwenden, z. B. git remote set-url git: //github.com/mrdoob/three.js.git - und versuchen Sie es dann mit dem Git-Pull.
Mark Hibberd
läuft auf osx. Ich habe es geschafft, es mit git pull github.com/mrdoob/three.js.git master
George Profenza
3
Tippfehler in Befehle, denke ich, Sie beginnen mit original, dann wechseln Sie zuorigin
Benjol
46

Sie müssen das ursprüngliche Repo als Upstream hinzufügen.

Hier wird alles gut beschrieben: https://help.github.com/articles/fork-a-repo

git remote add upstream https://github.com/octocat/Spoon-Knife.git
git fetch upstream
git merge upstream/master
git push origin master
Alex
quelle
5

Sie müssen das ursprüngliche Repository (das von Ihnen gegabelte) als Remote hinzufügen.

git remote add github (Klon-URL für das ursprüngliche Repository)

Dann müssen Sie die Änderungen in Ihr lokales Repository übernehmen

Git holen Github

Jetzt haben Sie alle Zweige des ursprünglichen Repositorys in Ihrem lokalen. Zum Beispiel wird der Hauptzweig sein github/master. Mit diesen Zweigen können Sie tun, was Sie wollen. Füge sie in deine Zweige usw.

Abizern
quelle
1
Ich schlage den Namen upstreamfür die Fernbedienung vor.
Vidstige
@vidstige Was nicht wirklich beschreibend genug ist, wenn Sie mehrere Fernbedienungen für ein Repository haben. Zum Beispiel habe ich häufig eine Fernbedienung auf Github und eine Fernbedienung auf Dropbox.
Abizern
Na dann macht es natürlich Sinn. Deshalb ist es großartig, sie selbst benennen zu können. Erkenne, dass dein Setup wahrscheinlich weniger verbreitet ist als eine Fernbedienung namens origin, die deine eigene Gabel ist, und dann hast du das Original, das normalerweise als "Upstream" bezeichnet wird.
Vidstige
-8

Für Linux:

git add * 
git commit -a --message "Initial Push All"
git push -u origin --all
Gast
quelle
3
Dies ist das Gegenteil von dem, wonach OP gesucht hat.
Ryan