Anmerkung des Moderators: Angesichts der Tatsache, dass auf diese Frage bereits siebenundsechzig Antworten gepostet wurden (von denen einige gelöscht wurden), sollten Sie überlegen, ob Sie etwas Neues beitragen, bevor Sie eine weitere Frage posten.
Was sind die Unterschiede zwischen git pull
und git fetch
?
Vereinfacht ausgedrückt, führt git pull
ein git fetch
gefolgt von einem git merge
durch.
Sie können jederzeit ein git fetch
durchführen, um Ihre Remote-Tracking-Zweige unter refs/remotes/<remote>/
zu aktualisieren.
Diese Operation ändert niemals einen Ihrer eigenen lokalen Zweige unter refs/heads
und kann sicher durchgeführt werden, ohne Ihre Arbeitskopie zu verändern. Ich habe sogar schon von Leuten gehört, die git fetch
regelmäßig in einem Cron-Job im Hintergrund laufen lassen (obwohl ich das nicht empfehlen würde).
Ein git pull
ist das, was Sie tun würden, um einen lokalen Zweig auf den neuesten Stand mit seiner entfernten Version zu bringen, während Sie auch Ihre anderen entfernten Zweige aktualisieren.
Git Dokumentation - git pull:
In seinem Standardmodus ist
git pull
eine Abkürzung fürgit fetch
gefolgt vongit merge FETCH_HEAD
.
Ein Anwendungsfall von git fetch
ist, dass es Ihnen alle Änderungen im entfernten Zweig seit Ihrem letzten Pull mitteilt... so können Sie überprüfen, bevor Sie einen tatsächlichen Pull durchführen, der Dateien in Ihrem aktuellen Zweig und Ihrer Arbeitskopie ändern könnte.
git fetch
git diff ...origin
Siehe: https://git-scm.com/docs/git-diff bezüglich der Doppel- und Dreifach-Punkt-Syntax im diff-Befehl
git-pull - Holen von und Zusammenführen mit einem anderen Repository oder einem lokalen Zweig SYNOPSISgit-pull
... BESCHREIBUNG Führt git-fetch mit den angegebenen Parametern aus und ruft git-merge auf, um die Head(s) in den aktuellen Zweig zusammenzuführen. Mit --rebase wird git-rebase anstelle von git-merge auf.
Beachten Sie, dass Sie auch . (aktuelles Verzeichnis) als
verwenden können, um aus dem lokalen Repository zu ziehen - dies ist nützlich, wenn Sie lokale Zweige in den aktuellen Zweig. Beachten Sie auch, dass Optionen, die für git-pull selbst und das zugrunde liegende git-merge vor den Optionen für git-fetch angegeben werden müssen.
Du würdest pull verwenden, wenn du die Historien zusammenführen willst, du würdest fetch verwenden, wenn du nur "den Codez" willst, wie jemand hier einige Artikel getaggt hat.