Git Fetch vs Pull: Was ist der Unterschied zwischen den Befehlen Git Fetch und Git Pull?

Git pullund fetchsind zwei Befehle, die regelmäßig von Git-Benutzern verwendet werden. Lassen Sie uns den Unterschied zwischen beiden Befehlen sehen.

Aus Gründen des Kontextes ist daran zu erinnern, dass wir wahrscheinlich in einem Klon-Repo arbeiten. Was ist ein Klon? Es ist einfach ein Duplikat eines anderen Repositorys. Es geht im Grunde darum, eine eigene Kopie des Quellcodes eines anderen zu erhalten.

Das heißt, um Ihren Klon über alle Änderungen am Original auf dem Laufenden zu halten, müssen Sie diese auf Ihren Klon übertragen.

Das ist wo fetchund pullkomm rein.

git fetch ist der Befehl, der Ihren lokalen Git anweist, die neuesten Metadateninformationen aus dem Original abzurufen (führt jedoch keine Dateiübertragung durch. Es ist eher so, als würde man nur prüfen, ob Änderungen verfügbar sind).

git pull Auf der anderen Seite bringt das AND diese Änderungen aus dem Remote-Repository (kopiert sie).

Zum Beispiel:

git pull origin ankur bugfix

Beachten Sie, dass sich in der Regel mindestens drei Kopien eines Projekts auf Ihrer Workstation befinden.

  • Eine Kopie ist Ihr eigenes Repository mit Ihrem eigenen Commit-Verlauf (sozusagen der bereits gespeicherte).
  • Die zweite Kopie ist Ihre Arbeitskopie, die Sie bearbeiten und erstellen (noch nicht für Ihr Repo festgelegt).
  • Die dritte Kopie ist Ihre lokale "zwischengespeicherte" Kopie eines Remote-Repositorys (wahrscheinlich das Original, von dem Sie Ihr Repository geklont haben).

Sie können git fetchdie Änderungen kennen, die seit Ihrem letzten Abruf im Remote-Repo / Zweig vorgenommen wurden. Dies ist nützlich, um vor dem eigentlichen Abrufen zu überprüfen, ob Dateien in Ihrem aktuellen Zweig und in Ihrer Arbeitskopie geändert werden (und möglicherweise Ihre Änderungen usw. verloren gehen).

git fetch git diff ...origin