2009-09-18 12 views
366

Ich habe ein Projekt lokal von Github überprüft, das entfernte Repo hat seitdem Änderungen daran vorgenommen. Was ist der richtige Befehl, um meine lokale Kopie mit den neuesten Änderungen zu aktualisieren?Aktualisieren eines lokalen Repositorys mit Änderungen von einem Github-Repository

+16

Es ist erwähnenswert, dass Github eine Reihe von sehr informativen und hilfreichen Anleitungen für die Verwendung von Git und GitHub erstellt haben. Ich fand sie von unschätzbarem Wert, als ich zum ersten Mal zu Git kam. https://help.github.com/ –

+18

@MarkEbling Für jede Frage ist möglich, fügen Sie einen Kommentar "RTFM" ... Aber ich bin ziemlich glücklich, als jemand diese Frage beantwortet. – jm666

Antwort

513

wahrscheinlich:

git pull origin master 
+20

Es beschwerte sich: "Sie aufgefordert, von der Remote- 'Ursprung' zu ziehen, aber eine Verzweigung nicht angegeben. Da dies nicht die standardmäßig konfigurierte Remote für Ihre aktuelle Niederlassung ist, müssen Sie eine Verzweigung in der Befehlszeile angeben." Also habe ich versucht "$ git pull Herkunft Master" und es hat gut funktioniert. –

+6

git pull Ursprung Master – Hoto

+0

Ich löschte einige Dateien und es bringt sie nicht wieder, keine Ahnung? –

51
git fetch [remotename] 

Sie müssen jedoch alle Änderungen in Ihre lokalen Zweige zusammenführen. Wenn Sie auf einem Zweig sind, die einen Remote-Zweig auf Github Tracking, dann

git pull 

zunächst eine holen tun, und verschmilzt dann in dem verfolgten Zweig

+2

Wenn Sie die 'git fetch'-Methode verwenden, sollten Sie auch Tags mit' git fetch -t' abrufen. Wenn Sie mit den Änderungen zufrieden sind ('git log HEAD..FETCH_HEAD'), können Sie sie mit' git merge FETCH_HEAD' zusammenführen. –

56

Diese sollte für jeden Repo-Standard funktionieren:

Wenn Ihr Standardzweig anders ist als master, müssen Sie die Zweignamen angeben:

git pull origin my_default_branch_name 
+2

Nicht wirklich. fatal: Remote-Master konnte nicht gefunden werden –

+1

@Eijkhout wahrscheinlich In Ihrem Repo-Fall gibt es keinen Master-Zweig, und ein anderer Zweig ist als Standard festgelegt – Hoto

0

Diese Frage ist sehr allgemein und es gibt ein paar Annahmen, die ich machen werde, um es ein wenig zu vereinfachen. Wir nehmen an, dass Sie Ihren Zweig master aktualisieren möchten.

Wenn Sie lokal keine Änderungen vorgenommen haben, können Sie git pull verwenden, um neue Commits zu entfernen und sie zu Ihrer master hinzuzufügen.

git pull origin master 

Wenn Sie Änderungen vorgenommen haben, und Sie wollen eine neue Merge verpflichten zu vermeiden hinzufügen, verwenden git pull --rebase.

git pull --rebase origin master 

git pull --rebase funktioniert sogar, wenn Sie nicht Änderungen vorgenommen haben und ist wahrscheinlich die beste Anruf.

Verwandte Themen