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 ?

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).


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

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

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.


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

3
Dies ist das Gegenteil von dem, wonach OP gesucht hat.
Ryan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.