So prüfen Sie, ob ein Git-Remote-Repository Tags hat

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 Tags in einem entfernten Git-Repository überprüfen können, ohne das gesamte Repository klonen zu müssen. Wir werden die Verwendung des Befehls git ls-remote --tags untersuchen, um entfernte Tags effizient aufzulisten.

Danach lernen Sie, wie Sie diese entfernten Tags in Ihr lokales Repository abrufen und sie mit git tag anzeigen können. Abschließend zeigen wir, wie Sie diesen Prozess mit einem entfernten Repository testen können, das keine Tags enthält.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git(("Git")) -.-> git/CollaborationandSharingGroup(["Collaboration and Sharing"]) git(("Git")) -.-> git/SetupandConfigGroup(["Setup and Config"]) git/SetupandConfigGroup -.-> git/init("Initialize Repo") git/BranchManagementGroup -.-> git/tag("Git Tags") git/CollaborationandSharingGroup -.-> git/fetch("Download Updates") git/CollaborationandSharingGroup -.-> git/remote("Manage Remotes") subgraph Lab Skills git/init -.-> lab-560075{{"So prüfen Sie, ob ein Git-Remote-Repository Tags hat"}} git/tag -.-> lab-560075{{"So prüfen Sie, ob ein Git-Remote-Repository Tags hat"}} git/fetch -.-> lab-560075{{"So prüfen Sie, ob ein Git-Remote-Repository Tags hat"}} git/remote -.-> lab-560075{{"So prüfen Sie, ob ein Git-Remote-Repository Tags hat"}} end

Führen Sie git ls-remote --tags aus

In diesem Schritt lernen wir, wie man Tags in einem entfernten Git-Repository anzeigt, ohne das gesamte Repository zu klonen. Dies ist nützlich, wenn Sie nur die verfügbaren Tags sehen müssen, beispielsweise, um nach bestimmten Release-Versionen zu suchen.

Wir verwenden den Befehl git ls-remote mit der Option --tags. Dieser Befehl holt eine Liste von Referenzen (wie Branches und Tags) aus einem entfernten Repository.

Probieren wir es mit einem öffentlichen Git-Repository aus. Wir nehmen das eigene Repository des Git-Projekts auf GitHub als Beispiel.

Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:

git ls-remote --tags https://github.com/git/git.git

Dieser Befehl verbindet sich mit dem entfernten Repository unter der angegebenen URL und listet alle verfügbaren Tags in diesem Repository auf.

Sie werden eine lange Ausgabe sehen, ähnlich wie diese (die genaue Ausgabe variiert je nach aktuellen Tags):

a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9  refs/tags/v2.30.0
b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9a1  refs/tags/v2.30.1
...

Jede Zeile in der Ausgabe repräsentiert einen Tag. Der erste Teil ist der Commit-Hash, auf den der Tag zeigt, und der zweite Teil ist der Tag-Referenzpfad (z.B. refs/tags/v2.30.0).

Der Befehl git ls-remote ist ein leistungsstarkes Werkzeug, um ein entferntes Repository zu untersuchen, ohne all seine Daten herunterzuladen. Durch die Verwendung der Option --tags filtern wir die Ausgabe gezielt, um nur die Tags anzuzeigen. Dies ist viel schneller und verbraucht weniger Bandbreite als das Klonen des gesamten Repositorys, nur um die Tags zu sehen.

Das Verständnis, wie man entfernte Tags auflistet, ist der erste Schritt bei der Arbeit mit Tags in einer verteilten Umgebung. In den nächsten Schritten werden wir untersuchen, wie man diese Tags in Ihrem lokalen Repository abruft und verwendet.

Abrufen und Überprüfen von Git-Tags

Im vorherigen Schritt haben wir gesehen, wie man Tags in einem entfernten Repository auflistet. Jetzt lernen wir, wie man diese Tags in unser lokales Repository holt und sie anzeigt.

Zunächst benötigen wir ein lokales Git-Repository, mit dem wir arbeiten können. Erstellen wir ein einfaches:

mkdir my-tag-project
cd my-tag-project
git init

Jetzt, da wir ein lokales Repository haben, können wir die Tags aus dem entfernten Git-Repository abrufen, das wir zuvor verwendet haben. Wir verwenden den Befehl git fetch mit der Option --tags und der Remote-URL:

git fetch --tags https://github.com/git/git.git

Dieser Befehl holt alle Tags aus dem angegebenen entfernten Repository und fügt sie Ihrem lokalen Repository hinzu. Im Gegensatz zu git clone lädt git fetch nur die notwendigen Objekte herunter, um die Tags und ihre zugehörigen Commits darzustellen; es erstellt keine Arbeitskopie der Projekt-Dateien.

Sie sollten eine Ausgabe sehen, die darauf hinweist, dass Tags abgerufen werden, ähnlich wie diese:

From https://github.com/git/git.git
 * [new tag]         v2.30.0    -> v2.30.0
 * [new tag]         v2.30.1    -> v2.30.1
...

Jetzt, da die Tags abgerufen wurden, können wir sie mit dem Befehl git tag anzeigen:

git tag

Dieser Befehl listet alle Tags auf, die derzeit in Ihrem lokalen Repository verfügbar sind. Sie sollten eine Liste der Tags sehen, die gerade aus dem entfernten Repository abgerufen wurden, beispielsweise:

v2.30.0
v2.30.1
...

Sie haben erfolgreich Tags aus einem entfernten Repository abgerufen und sie lokal aufgelistet. Dies ist ein entscheidender Schritt, wenn Sie mit bestimmten Release-Versionen oder Meilensteinen arbeiten müssen, die in einem Projekt durch Tags markiert sind.

Testen von taglosen Remotes

In den vorherigen Schritten haben wir gelernt, wie man Tags aus einem entfernten Repository auflistet und abruft. Allerdings haben nicht alle entfernten Repositories Tags. In diesem Schritt werden wir git ls-remote --tags auf einem Repository testen, das wahrscheinlich keine Tags hat.

Wir verwenden ein einfaches, neu initialisiertes Git-Repository, das auf einem lokalen Pfad gehostet wird. Dies simuliert ein entferntes Repository, in dem noch keine Tags erstellt wurden.

Zunächst erstellen wir ein neues Verzeichnis und initialisieren darin ein Git-Repository. Wir tun dies außerhalb unseres aktuellen my-tag-project-Verzeichnisses, um ein separates entferntes Repository zu simulieren.

cd ~/project
mkdir remote-repo
cd remote-repo
git init --bare

Der Befehl git init --bare erstellt ein "nacktes" (bare) Git-Repository. Ein nacktes Repository hat kein Arbeitsverzeichnis; es wird typischerweise als zentrales Repository verwendet, auf das Entwickler pushen und von dem sie pullen.

Jetzt kehren wir in unser my-tag-project-Verzeichnis zurück:

cd ~/project/my-tag-project

Von hier aus können wir git ls-remote --tags verwenden, um nach Tags in unserem neu erstellten "entfernten" Repository zu suchen. Wir verwenden den lokalen Pfad zum nackten Repository als Remote-URL:

git ls-remote --tags ~/project/remote-repo

Da wir dieses Repository gerade initialisiert haben und noch keine Commits oder Tags hinzugefügt haben, sollte dieser Befehl keine Ausgabe liefern. Dies zeigt an, dass es keine Tags im angegebenen entfernten Repository gibt.

Dies zeigt, dass git ls-remote --tags korrekt nichts anzeigt, wenn ein entferntes Repository keine Tags enthält. Dies ist nützlich, um das Fehlen von Tags zu bestätigen oder für Skripte, bei denen Sie Repositories mit oder ohne Tags verarbeiten müssen.

Sie haben nun das Auflisten von Tags sowohl aus einem Repository mit vielen Tags als auch aus einem Repository ohne Tags geübt. Dies gibt Ihnen ein besseres Verständnis davon, wie git ls-remote --tags in verschiedenen Szenarien verhält.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man mithilfe des Befehls git ls-remote --tags nach Tags in einem entfernten Git-Repository sucht, ohne es zu klonen. Dieser Befehl listet die entfernten Tags effizient auf, indem er nur die Referenzinformationen abruft, was im Vergleich zu einem vollständigen Klonen Zeit und Bandbreite spart.

Anschließend haben wir untersucht, wie man diese entfernten Tags mit git fetch --tags in ein lokales Repository holt und sie lokal mit git tag anzeigt. Schließlich haben wir geübt, entfernte Repositories zu identifizieren, die keine Tags haben, indem wir die Ausgabe von git ls-remote --tags beobachtet haben.