Im vorherigen Schritt haben wir gesehen, wie man Tags in einem Remote-Repository auflistet. Jetzt sehen wir uns an, wie man diese Remote-Tags mit den Tags vergleicht, die in Ihrem lokalen Repository existieren. Dies ist nützlich, um zu prüfen, ob Ihr lokales Repository mit dem Remote-Repository auf dem neuesten Stand ist oder ob Sie lokale Tags haben, die noch nicht gepusht wurden.
Zunächst stellen wir sicher, dass wir uns in einem Git-Repository befinden. Wir erstellen für dieses Beispiel ein einfaches Repository. Navigieren Sie in Ihr Projektverzeichnis und initialisieren Sie ein neues Git-Repository:
cd ~/project
mkdir my-tag-repo
cd my-tag-repo
git init
Jetzt erstellen wir eine Datei und machen einen ersten Commit:
echo "Initial content" > file.txt
git add file.txt
git commit -m "Initial commit"
Als Nächstes erstellen wir ein lokales Tag. Wir erstellen ein einfaches (lightweight) Tag namens v1.0
:
git tag v1.0
Jetzt listen wir unsere lokalen Tags mit dem Befehl git tag
auf:
git tag
Sie sollten Folgendes sehen:
v1.0
Dies bestätigt, dass unser lokales Tag v1.0
erstellt wurde.
Um unsere lokalen Tags mit Remote-Tags zu vergleichen, benötigen wir normalerweise ein Remote-Repository. Da wir noch kein Remote-Repository für unser my-tag-repo
eingerichtet haben, können wir das Vergleichskonzept simulieren.
Stellen Sie sich vor, Sie hätten ein Remote-Repository, das mit Ihrem lokalen Repository verknüpft ist. Sie könnten die neuesten Informationen aus dem Remote-Repository abrufen, ohne die Änderungen zu mergen, indem Sie git fetch --tags
verwenden. Dieser Befehl holt alle Tags aus dem Remote-Repository ab.
Nach dem Abrufen können Sie git tag -l
verwenden, um lokale Tags aufzulisten, und git ls-remote --tags origin
(angenommen, 'origin' ist der Name Ihres Remote-Repositorys), um Remote-Tags aufzulisten. Durch den Vergleich der Ausgabe dieser beiden Befehle können Sie sehen, welche Tags lokal vorhanden sind, welche remote vorhanden sind und welche in beiden vorhanden sind.
Beispielsweise, wenn git tag -l
v1.0
und v1.1
anzeigt, aber git ls-remote --tags origin
nur v1.0
anzeigt, bedeutet dies, dass Ihr lokales Tag v1.1
noch nicht an das Remote-Repository gepusht wurde.
In dieser Lab-Umgebung haben wir keinen Remote-Server, an den wir pushen können. Das Verständnis der Befehle git tag
(für lokale Tags) und git ls-remote --tags
(für Remote-Tags) ist jedoch der Schlüssel zum Vergleich dieser Tags.
Im nächsten Schritt werden wir das Szenario untersuchen, in dem es lokale Tags gibt, die noch nicht im Remote-Repository vorhanden sind.