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?
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
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:
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
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.
Antworten:
Wahrscheinlich:
quelle
Dies sollte für jedes Standard-Repo funktionieren:
Wenn sich Ihr Standardzweig von unterscheidet
master
, müssen Sie den Namen des Zweigs angeben:quelle
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
führt zuerst einen Abruf durch und führt dann den verfolgten Zweig zusammen
quelle
git fetch
Methode verwenden, möchten Sie auch Tags mit abrufengit fetch -t
. Wenn Sie mit den Änderungen (git log HEAD..FETCH_HEAD
) zufrieden sind , können Sie sie mit zusammenführengit merge FETCH_HEAD
.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
master
Filiale aktualisieren möchten .Wenn Sie lokal keine Änderungen vorgenommen haben, können Sie damit
git pull
neue Commits entfernen und zu Ihren hinzufügenmaster
.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
funktioniert auch, wenn Sie keine Änderungen vorgenommen haben und wahrscheinlich Ihr bester Anruf ist.quelle
Bei einem bereits festgelegten Ursprungsmaster müssen Sie nur den folgenden Befehl verwenden:
quelle