Aktualisieren eines lokalen Repositorys mit Änderungen aus einem GitHub-Repository


567

Ich habe ein Projekt lokal von GitHub überprüfen lassen, und an diesem Remote-Repository wurden seitdem Änderungen vorgenommen. Was ist der richtige Befehl, um meine lokale Kopie mit den neuesten Änderungen zu aktualisieren?


26
Es ist erwähnenswert, dass Github eine Reihe sehr informativer und hilfreicher Anleitungen für die Verwendung von Git und Github erstellt hat. Ich fand sie von unschätzbarem Wert, als ich mich zum ersten Mal für Git entschieden habe. help.github.com
Mark Embling

Antworten:


791

Wahrscheinlich:

git pull origin master

28
Es wurde beanstandet: "Sie haben nach einem Abruf vom Remote-Ursprung gefragt, aber keinen Zweig angegeben. Da dies nicht der standardmäßig konfigurierte Remote für Ihren aktuellen Zweig ist, müssen Sie einen Zweig in der Befehlszeile angeben." Also habe ich "$ git pull origin master" ausprobiert und es hat gut funktioniert.
Juan Lanus

8
Git Pull Origin Master
Andrzej Rehmann

1
Ich habe einige Dateien gelöscht und es bringt sie nicht wieder, eine Idee?
Wassermann Macht

1
Führen wir ein Git-Commit durch, bevor wir dies ausführen? Jedes Mal, wenn ich diesen Befehl ausführe, erhalte ich 18347213846 geänderte Dateien, die ich nicht einmal berührt habe !!!
Orkun Ozen

5
Ich habe gerade auf die harte Tour gelernt, dass beim Abrufen eines neuen Remote-Repository-Zweigs kein Zweig dieses Namens lokal erstellt wird, sondern dieser Remote-Zweig in den lokalen Zweig gezogen wird, der gerade ausgecheckt wird. Ich bin mir nicht sicher, wie ich dieses Problem lösen und das Repository neu klonen soll. In jedem Fall scheint der lokale Zweig unabhängig vom entfernten Zweig zu sein, und man sollte immer sicherstellen, dass Sie sich in dem beabsichtigten lokalen Zweig befinden, bevor Sie ihn ziehen.
Joe Lapp

87

Dies sollte für jedes Standard-Repo funktionieren:

git pull origin master

Wenn sich Ihr Standardzweig von unterscheidet master, müssen Sie den Namen des Zweigs angeben:

git pull origin my_default_branch_name

2
Nicht wirklich. tödlich: Remote Ref Master konnte nicht gefunden werden
Victor Eijkhout

1
@ Eijkhout wahrscheinlich in Ihrem Repo-Fall gibt es keinen Hauptzweig, und ein anderer Zweig ist als Standard festgelegt
Andrzej Rehmann

62
git fetch [remotename]

Sie müssen jedoch alle Änderungen in Ihren lokalen Niederlassungen zusammenführen. Wenn Sie sich in einem Zweig befinden, der einen Remote-Zweig in Github verfolgt, dann

git pull

führt zuerst einen Abruf durch und führt dann den verfolgten Zweig zusammen


5
Wenn Sie die git fetchMethode verwenden, möchten Sie auch Tags mit abrufen git fetch -t. Wenn Sie mit den Änderungen ( git log HEAD..FETCH_HEAD) zufrieden sind , können Sie sie mit zusammenführen git merge FETCH_HEAD.
Brad Grissom

16

Diese Frage ist sehr allgemein gehalten und es gibt einige Annahmen, die ich treffen werde, um sie ein wenig zu vereinfachen. Wir gehen davon aus, dass Sie Ihre masterFiliale aktualisieren möchten .

Wenn Sie lokal keine Änderungen vorgenommen haben, können Sie damit git pullneue Commits entfernen und zu Ihren hinzufügen master.

git pull origin master

Wenn Sie Änderungen vorgenommen haben und das Hinzufügen eines neuen Zusammenführungs-Commits vermeiden möchten, verwenden Sie git pull --rebase.

git pull --rebase origin master

git pull --rebase funktioniert auch, wenn Sie keine Änderungen vorgenommen haben und wahrscheinlich Ihr bester Anruf ist.


1
Rebase und die Gefahren von Rebase: atlassian.com/git/tutorials/rewriting-history/git-rebase . Die Absätze 2 und 3 des "Verstehen der Gefahren von Rebase" lassen mich den Befehlssatz von SVN wirklich vermissen.
WillC

9

Bei einem bereits festgelegten Ursprungsmaster müssen Sie nur den folgenden Befehl verwenden:

git pull "https://github.com/yourUserName/yourRepo.git"
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.