Abrufen von Remote-Änderungen und Prüfung mit git log @{u}
In diesem Schritt lernen wir, wie man Änderungen von einem Remote-Repository abruft und wie man mit git log @{u}
vergleicht, wie sich unser lokaler Branch zum Remote-Branch verhält.
Zunächst simulieren wir das Vorhandensein eines Remote-Repositorys. In der Realität würde dies auf einer Plattform wie GitHub oder GitLab liegen, aber für dieses Lab verwenden wir ein lokales Verzeichnis als unser "Remote".
Navigieren Sie in Ihr Projektverzeichnis:
cd ~/project/my-time-machine
Fügen wir nun ein Remote namens origin
hinzu, das auf ein simuliertes Remote-Repository zeigt. Wir gehen davon aus, dass ein Remote-Repository im setup
-Abschnitt eingerichtet wurde.
git remote add origin ../my-time-machine-remote
Dieser Befehl teilt Ihrem lokalen Git-Repository mit, dass es ein weiteres Repository unter ../my-time-machine-remote
gibt und wir es origin
nennen.
Lassen Sie uns nun die neuesten Änderungen von diesem Remote abrufen. Der Befehl git fetch
lädt Commits, Dateien und Referenzen von einem Remote-Repository in Ihr lokales Repository herunter. Es führt keine automatische Merge-Operation durch oder ändert Ihre aktuelle Arbeit nicht.
git fetch origin
Sie sollten eine Ausgabe sehen, die anzeigt, dass Git von dem Remote-Repository abruft.
Nach dem Abrufen können wir git log @{u}
(oder git log origin/master
in diesem Fall, da origin/master
der Upstream-Branch für master
ist) verwenden, um die Commits auf dem Remote-Branch anzuzeigen, die noch nicht auf unserem lokalen Branch vorhanden sind. Die Syntax @{u}
oder @{upstream}
bezieht sich auf den Upstream-Branch des aktuellen Branches.
git log @{u}
Da unser lokaler master
-Branch von Grund auf neu erstellt wurde und der Remote-master
-Branch (simuliert) ebenfalls leer begann und wir noch keine Commits an den Remote hinzugefügt haben, zeigt dieser Befehl möglicherweise keine Ausgabe an oder er zeigt den Initial-Commit an, wenn das Remote-Repository mit einem initialisiert wurde. Der Wichtige Teil ist das Verständnis, was dieser Befehl tut: Er zeigt die Commits an, die auf dem Upstream-Branch (origin/master
) aber nicht auf Ihrem aktuellen lokalen Branch (master
) sind.
Das Verständnis der Unterschiede zwischen Ihrem lokalen Branch und dem Remote-Branch ist entscheidend für die Zusammenarbeit und die Aktualität Ihres Projekts. git fetch
und git log @{u}
sind leistungsstarke Tools, um den Zustand des Remote-Repositorys zu untersuchen, ohne Ihr lokales Arbeitsverzeichnis zu ändern.