Zum Inhalt springen

git pull

Definition

Der git pull-Befehl lädt Inhalte aus dem Remote-Repository herunter und integriert Änderungen in das lokale Repository. Der git pull-Befehl entspricht der Kombination aus git fetch gefolgt von git merge.

gitpull

Verwendung von git pull

Der git pull-Befehl ist einer der Befehle, die am „Syncing“-Prozess beteiligt sind. Diese Befehle arbeiten mit den Remote-Branches, die mit dem Befehl git remote konfiguriert wurden. Commits werden mit git push hochgeladen und mit git fetch sowie git pull heruntergeladen. Nach Änderungen in beiden Fällen wird git merge verwendet, um die Änderungen zu integrieren. Sowohl git fetch als auch git pull dienen dem Herunterladen von Inhalten aus dem Remote-Repository. Der Befehl git fetch erzwingt nicht das Zusammenführen der Änderungen in das Repository, während der git pull-Befehl nicht nur den Remote-Inhalt herunterlädt, sondern ihn auch in die aktuelle Arbeitskopie integriert.

Funktionsweise

Um den Pull- und Zusammenführungsprozess zu verstehen, nehmen wir das folgende Beispiel an. Es gibt ein Repository mit einem master-Branch und einem Remote-Repository namens origin. Der git pull-Befehl lädt die Änderungen ab dem Punkt herunter, an dem sich der lokale und der master-Branch voneinander getrennt haben. Die Abbildung zeigt, dass dieser Punkt E ist. Hier sehen Sie die Remote-Commits A, B und C, die von git pull abgerufen werden. Anschließend wird ein neuer lokaler Merge-Commit mit dem Inhalt der neu abweichenden Remote-Commits erstellt.

gitpull1

Die Abbildung zeigt den neuen Commit H, der alle Inhalte der Commits A, B und C mit einer kombinierten Commit-Nachricht enthält.

gitpull2

Der git pull-Befehl mit der Option --rebase wird zum Zusammenführen anstelle von git merge verwendet.

gitpull3

Häufig verwendete Optionen

BefehlBeschreibung
git pull <remote>Lädt den Remote-Inhalt herunter und führt ihn direkt mit der lokalen Kopie zusammen (entspricht git fetch <remote> gefolgt von git merge origin/<current-branch>).
git pull --no-commit <remote>Lädt den Remote-Inhalt herunter, erstellt jedoch keinen Merge-Commit.
git pull --rebase <remote>Führt den Remote-Branch mit dem lokalen Branch zusammen.
git pull --verboseZeigt heruntergeladene Inhalte und Merge-Details an und gibt während eines Pulls ausführliche Ausgaben aus.

Beispiele

Der Aufruf von git pull ohne Argumente lädt Änderungen vom für den aktuellen Branch konfigurierten Upstream-Branch herunter und führt sie zusammen. HEAD ist eine Referenz, die auf den aktuellen Branch verweist.

git pull

bash
git pull

Änderungen aus einem bestimmten Branch eines Remote-Repositories abrufen:

git pull auf Remotes

bash
git pull <remote> <branch>

Dieser Befehl lädt Änderungen aus dem angegebenen Branch des Remote-Repositories herunter und führt sie zusammen.

Wenn Sie beispielsweise Änderungen aus dem develop-Branch des origin-Remotes abrufen möchten, verwenden Sie den folgenden Befehl:

bash
git pull origin develop

Änderungen aus einem Remote-Repository abrufen und lokale Änderungen darauf aufbauen (rebasen):

git pull über Rebase

bash
git pull --rebase

Dieser Befehl lädt Änderungen aus dem Remote-Repository herunter und rebaset Ihre lokalen Änderungen darauf anstatt sie zusammenzuführen. Dies kann nützlich sein, wenn Sie Ihre Commit-Historie linear halten und Merge-Commits vermeiden möchten.

Änderungen aus einem Remote-Repository abrufen, ohne sie automatisch zusammenzuführen:

git pull --no-commit

bash
git pull --no-commit

Dieser Befehl lädt Änderungen aus dem Remote-Repository herunter, führt sie jedoch nicht automatisch in Ihren lokalen Branch zusammen. Stattdessen werden die Änderungen als vorbereitete Änderungen (staged changes) belassen, die Sie manuell überprüfen und committen können.

Practice

Welche der folgenden Aussagen über den Befehl 'git pull' sind wahr?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.