Git Pull erklärt

git pull ist ein Git-Befehl, mit dem die lokale Version eines Repositorys von einer Fernbedienung aktualisiert wird.

Dies ist einer der vier Befehle, die Git zur Netzwerkinteraktion auffordern. Standardmäßig werden git pullzwei Dinge ausgeführt.

  1. Aktualisiert den aktuellen lokalen Arbeitszweig (aktuell ausgecheckter Zweig)
  2. Aktualisiert die Remote-Tracking-Zweige für alle anderen Zweige.

git pullholt ( git fetch) die neuen Commits und führt ( git merge) diese in Ihrer lokalen Niederlassung zusammen.

Die Syntax dieses Befehls lautet wie folgt:

# General format git pull OPTIONS REPOSITORY REFSPEC # Pull from specific branch git pull REMOTE-NAME BRANCH-NAME

in welchem:

  • OPTIONEN sind die Befehlsoptionen wie--quietoder--verbose. Weitere Informationen zu den verschiedenen Optionen finden Sie in der Git-Dokumentation
  • REPOSITORY ist die URL zu Ihrem Repo. Beispiel: //github.com/freeCodeCamp/freeCodeCamp.git
  • REFSPEC gibt an, welche Refs abgerufen und welche lokalen Refs aktualisiert werden sollen
  • REMOTE-NAME ist der Name Ihres Remote-Repositorys. Zum Beispiel: Herkunft .
  • BRANCH-NAME ist der Name Ihrer Niederlassung. Zum Beispiel: entwickeln .

Hinweis

Wenn Sie nicht festgeschriebene Änderungen vorgenommen haben, schlägt der Zusammenführungsteil des git pullBefehls fehl und Ihr lokaler Zweig bleibt unberührt.

Daher sollten Sie Ihre Änderungen immer in einem Zweig festschreiben, bevor Sie neue Festschreibungen aus einem Remote-Repository abrufen.

Inhaltsverzeichnis

  • Verwenden von git pull
  • Verteilte Versionskontrolle
  • git fetch + git merge
  • git pull in IDEs

Mit Git Pull

Verwenden Sie git pulldiese Option, um ein lokales Repository aus dem entsprechenden Remote-Repository zu aktualisieren. Ex: Während lokal auf Arbeit master, führen Sie git pulldie lokale Kopie zu aktualisieren masterund den anderen Remote - Tracking - Zweig zu aktualisieren. (Weitere Informationen zu Fernverfolgungszweigen finden Sie im nächsten Abschnitt.)

Es gibt jedoch einige Dinge zu beachten, damit dieses Beispiel wahr ist:

Das lokale Repository verfügt über ein verknüpftes Remote-Repository

  • Überprüfen Sie dies durch Ausführen git remote -v
  • Wenn mehrere Fernbedienungen vorhanden sind, sind git pullmöglicherweise nicht genügend Informationen vorhanden. Möglicherweise müssen Sie git pull originoder eingeben git pull upstream.

Der Zweig, in den Sie gerade ausgecheckt sind, verfügt über einen entsprechenden Fernverfolgungszweig

  • Überprüfen Sie dies durch Ausführen git status. Wenn es keinen Remote-Tracking-Zweig gibt, weiß Git nicht, woher er Informationen beziehen soll .

Verteilte Versionskontrolle

Git ist ein verteiltes Versionskontrollsystem (DVCS). Mit DVCS können Entwickler in separaten Umgebungen gleichzeitig an derselben Datei arbeiten. Nach dem Drücken Code bis zur gemeinsamen Remote - Repository, andere Entwickler können ziehen geändertenen Code.

Netzwerkinteraktionen in Git

Es gibt nur vier Befehle, die Netzwerkinteraktionen in Git veranlassen. Ein lokales Repository hat keine Kenntnis von Änderungen, die am Remote-Repository vorgenommen wurden, bis eine Informationsanforderung vorliegt. Ein Remote-Repository ist sich lokaler Änderungen erst bewusst, wenn Commits übertragen werden.

Die vier Netzwerkbefehle sind:

  • git clone
  • git fetch
  • git pull
  • git push

Niederlassungen in DVCS

Wenn Sie mit Git arbeiten, kann es sein, dass überall viele Kopien desselben Codes schweben. In jedem Zweig gibt es verschiedene Versionen derselben Datei. Und verschiedene Kopien derselben Zweige auf dem Computer jedes Entwicklers und auf der Fernbedienung. Um dies zu verfolgen, verwendet Git sogenannte Remote-Tracking-Zweige .

Wenn Sie git branch --allin einem Git-Repository ausführen , werden Remote-Tracking-Zweige rot angezeigt. Dies sind schreibgeschützte Kopien des Codes, wie er auf der Fernbedienung angezeigt wird. (Wann war die letzte Netzwerkinteraktion, die Informationen lokal gebracht hätte? Denken Sie daran, wann diese Informationen zuletzt aktualisiert wurden. Die Informationen in den Fernverfolgungszweigen spiegeln die Informationen aus dieser Interaktion wider.)

Mit Remote-Tracking-Zweigen können Sie in Git an mehreren Zweigen ohne Netzwerkinteraktion arbeiten. Jedes Mal , wenn Sie ausführen git pulloder git fetchBefehle, aktualisieren Sie Remote - Tracking - Zweige .

Git Fetch plus Git Merge

git pullist ein Kombinationsbefehl gleich git fetch+ git merge.

Git holen

Auf seiner eigenen, git fetchaktualisiert alle Remote - Tracking - Zweige in lokalen Repository. In keiner der lokalen Arbeitsniederlassungen werden Änderungen vorgenommen.

Git Merge

Ohne Argumente git mergewird der entsprechende Remote-Tracking-Zweig mit dem lokalen Arbeitszweig zusammengeführt.

Git Pull

git fetchaktualisiert Remote-Tracking-Zweige. git mergeaktualisiert den aktuellen Zweig mit dem entsprechenden Fernverfolgungszweig. Mit erhalten git pullSie beide Teile dieser Updates. Dies bedeutet jedoch, dass beim Auschecken zum featureVerzweigen und Ausführen git pullbeim Auschecken masterkeine neuen Updates enthalten sind. Wenn Sie zu einem anderen Zweig auschecken, der möglicherweise neue Änderungen aufweist, ist es immer eine gute Idee, diese auszuführen git pull.

Git Pull in IDEs

Die gemeinsame Sprache in anderen IDES enthält möglicherweise nicht das Wort pull. Wenn Sie nach den Wörtern Ausschau halten, sie git pullaber nicht sehen, suchen Sie syncstattdessen nach dem Wort .

Abrufen eines Remote-PR (Pull Request) in das lokale Repo

Zu Überprüfungszwecken und dergleichen sollten PRs in der Ferne zum lokalen Repo abgerufen werden. Sie können den folgenden git fetchBefehl verwenden, um dies zu erreichen.

git fetch origin pull/ID/head:BRANCHNAME

ID ist die Pull-Anforderungs-ID und BRANCHNAME ist der Name des Zweigs, den Sie erstellen möchten. Sobald der Zweig erstellt wurde, können Sie git checkoutzu diesem Brach wechseln.

Weitere Ressourcen zu git in guide.freecodecamp.org

  • Git zusammenführen
  • Git Checkout
  • Git Commit
  • Git Stash
  • Git-Zweig