So prüfen Sie, ob ein Git-Commit gepusht wurde

GitGitBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie prüfen können, ob ein Git-Commit an ein Remote-Repository gepusht wurde. Wir werden verschiedene Methoden untersuchen, um dies zu erreichen. Zunächst holen wir Änderungen von einem Remote-Repository ab und verwenden git log @{u}, um lokale und Remote-Branches zu vergleichen.

Anschließend lernen Sie, wie Sie git branch -r --contains verwenden, um Remote-Branches zu identifizieren, die einen bestimmten Commit enthalten, und schließlich überprüfen Sie den Push-Status, indem Sie den Remote-Branch direkt untersuchen. Dieser praktische Ansatz vermittelt Ihnen die Fähigkeiten, um den Push-Status Ihrer Git-Commits sicher zu bestimmen.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git(("Git")) -.-> git/CollaborationandSharingGroup(["Collaboration and Sharing"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/commit("Create Commit") git/BranchManagementGroup -.-> git/branch("Handle Branches") git/BranchManagementGroup -.-> git/log("Show Commits") git/CollaborationandSharingGroup -.-> git/fetch("Download Updates") git/CollaborationandSharingGroup -.-> git/push("Update Remote") git/CollaborationandSharingGroup -.-> git/remote("Manage Remotes") subgraph Lab Skills git/add -.-> lab-560055{{"So prüfen Sie, ob ein Git-Commit gepusht wurde"}} git/commit -.-> lab-560055{{"So prüfen Sie, ob ein Git-Commit gepusht wurde"}} git/branch -.-> lab-560055{{"So prüfen Sie, ob ein Git-Commit gepusht wurde"}} git/log -.-> lab-560055{{"So prüfen Sie, ob ein Git-Commit gepusht wurde"}} git/fetch -.-> lab-560055{{"So prüfen Sie, ob ein Git-Commit gepusht wurde"}} git/push -.-> lab-560055{{"So prüfen Sie, ob ein Git-Commit gepusht wurde"}} git/remote -.-> lab-560055{{"So prüfen Sie, ob ein Git-Commit gepusht wurde"}} end

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.

Verwenden von git branch -r --contains

In diesem Schritt werden wir untersuchen, wie man den Befehl git branch -r --contains verwendet, um herauszufinden, welche Remote-Branches einen bestimmten Commit enthalten. Dies ist nützlich, wenn Sie wissen möchten, ob eine bestimmte Änderung in einem Remote-Branch enthalten ist.

Stellen Sie zunächst sicher, dass Sie sich in Ihrem Projektverzeichnis befinden:

cd ~/project/my-time-machine

Erstellen wir nun einen neuen Commit in unserem lokalen Repository. Dies gibt uns einen Commit, nach dem wir auf dem Remote-Repository suchen können.

echo "Adding another message" >> message.txt
git add message.txt
git commit -m "Add another message"

Sie sollten eine Ausgabe sehen, die den neuen Commit bestätigt.

Verwenden wir nun git log --oneline, um die Historie anzuzeigen und den Commit-Hash unseres neuesten Commits zu erhalten.

git log --oneline

Kopieren Sie den Commit-Hash (die kurze Zeichenfolge) des Commits mit der Nachricht "Add another message". Es wird in etwa so aussehen wie abcdefg.

Verwenden wir nun git branch -r --contains mit dem Commit-Hash, den Sie gerade kopiert haben. Ersetzen Sie YOUR_COMMIT_HASH durch den tatsächlichen Hash.

git branch -r --contains YOUR_COMMIT_HASH

Da wir diesen neuen Commit noch nicht an das Remote-Repository (origin) gepusht haben, sollte dieser Befehl origin/master nicht in der Ausgabe anzeigen. Dies liegt daran, dass der Remote-Branch origin/master noch nicht den Commit enthält, den Sie gerade lokal erstellt haben.

Der Teil git branch -r listet die Remote-Tracking-Branches auf. Der Teil --contains YOUR_COMMIT_HASH filtert diese Liste so, dass nur Branches angezeigt werden, die den angegebenen Commit enthalten.

Dieser Befehl ist eine leistungsstarke Möglichkeit, den Status Ihrer Commits in Bezug auf Remote-Branches zu prüfen. Er hilft Ihnen zu verstehen, ob Ihre Änderungen in das Remote-Repository integriert wurden.

Mit Remote-Branch verifizieren

In diesem letzten Schritt werden wir unseren lokalen Commit an das Remote-Repository pushen und dann erneut git branch -r --contains verwenden, um zu überprüfen, ob der Remote-Branch nun unseren Commit enthält.

Stellen Sie zunächst sicher, dass Sie sich in Ihrem Projektverzeichnis befinden:

cd ~/project/my-time-machine

Lassen Sie uns nun unseren lokalen master-Branch an das origin-Remote pushen.

git push origin master

Sie sollten eine Ausgabe sehen, die anzeigt, dass Ihr Commit an das Remote-Repository gepusht wird.

Nachdem der Push abgeschlossen ist, holen wir uns den Commit-Hash des Commits, den wir überprüfen möchten. Verwenden Sie erneut git log --oneline:

git log --oneline

Kopieren Sie den Commit-Hash des Commits mit der Nachricht "Add another message".

Verwenden Sie nun git branch -r --contains mit dem Commit-Hash, den Sie gerade kopiert haben. Ersetzen Sie YOUR_COMMIT_HASH durch den tatsächlichen Hash.

git branch -r --contains YOUR_COMMIT_HASH

Diesmal sollten Sie origin/master in der Ausgabe sehen. Dies bestätigt, dass Ihr Commit erfolgreich an das Remote-Repository gepusht wurde und der Remote-Branch origin/master nun diesen Commit enthält.

Dieser Prozess des Pushens Ihrer Änderungen und anschließenden Verifizierens auf dem Remote-Branch ist ein gängiger Arbeitsablauf in Git, insbesondere bei der Zusammenarbeit mit anderen. Es stellt sicher, dass Ihre Beiträge für das gesamte Team verfügbar sind.

Sie haben nun erfolgreich von einem Remote-Repository abgerufen, git branch -r --contains verwendet, um nach einem Commit zu suchen, Ihre Änderungen gepusht und den Commit auf dem Remote-Branch verifiziert. Dies sind essentielle Fähigkeiten für die Arbeit mit Remote-Repositories in Git.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man prüft, ob lokale Git-Commits an ein Remote-Repository gepusht wurden. Wir haben begonnen, indem wir ein Remote-Repository simuliert und es als origin-Remote zu unserem lokalen Projekt hinzugefügt haben. Anschließend haben wir git fetch origin verwendet, um die neuesten Informationen vom Remote-Repository abzurufen, ohne unseren lokalen Arbeitszustand zu ändern.

Nach dem Abrufen haben wir den Befehl git log @{u} untersucht, der eine leistungsstarke Möglichkeit ist, unseren lokalen Branch mit seinem konfigurierten Upstream-Branch (in diesem Fall origin/master) zu vergleichen. Dieser Befehl hilft, Commits zu visualisieren, die auf dem Remote-Repository, aber nicht lokal existieren, und gibt Einblicke in den Synchronisierungsstatus unseres Branches. Obwohl die erste Ausgabe leer sein kann, wenn keine Commits gepusht wurden, ist das Verständnis dieses Befehls entscheidend, um Commits zu identifizieren, die noch nicht mit dem Remote-Repository geteilt wurden.