web-dev-qa-db-de.com

Wie liste ich alle Git-Tags auf?

In meinem Repository habe ich Tags mit den folgenden Befehlen erstellt.

git tag v1.0.0 -m 'finally a stable release'
git tag v2.0.0 -m 'oops, there was still a major bug!'

Wie listet man alle Tags im Repository auf?

git tag

sollte genug sein. Siehe git tag Manpage


Sie haben auch:

git tag -l <pattern>

Listen Sie Tags mit Namen auf, die dem angegebenen Muster entsprechen (oder alle, wenn kein Muster angegeben ist).
Wenn Sie "git tag" ohne Argumente eingeben, werden auch alle Tags aufgelistet.


In jüngerer Zeit (" Wie sortiere ich Git-Tags? ", für Git 2.0+)

git tag --sort=<type>

In einer bestimmten Reihenfolge sortieren.

Unterstützter Typ ist:

  • "refname" (lexikografische Reihenfolge),
  • "version:refname" oder "v:refname" (Tag-Namen werden als Versionen behandelt).

Stellen Sie "-" voran, um die Sortierreihenfolge umzukehren.


Das listet beide:

  • mit Anmerkungen versehene Tags: vollständige Objekte, die in der Git-Datenbank gespeichert sind. Sie sind Prüfsummen. Enthält den Taggernamen, die E-Mail-Adresse und das Datum. eine Markierungsnachricht haben; und kann mit GNU Privacy Guard (GPG) signiert und verifiziert werden.
  • Lightweight-Tags: einfacher Zeiger auf ein vorhandenes Commit

Hinweis: Der Git-Ready-Artikel zum Taggen missbilligt Lightweight-Tags.

Ohne Argumente erstellt git tag ein "leichtgewichtiges" Tag, das im Grunde genommen ein Zweig ist, der sich nie bewegt.
Lightweight-Tags sind jedoch nach wie vor nützlich, beispielsweise zum Markieren einer bekannten guten (oder schlechten) Version oder einer Reihe von Commits, die Sie möglicherweise in Zukunft verwenden müssen.
Trotzdem möchten Sie diese Art von Tags wahrscheinlich nicht pushen .

Normalerweise möchten Sie mindestens die Option -a übergeben, um ein nicht signiertes Tag zu erstellen, oder das Tag mit Ihrem GPG-Schlüssel über die Optionen -s oder -u signieren.


Davon abgesehen weist Charles Bailey darauf hin, dass ein 'git tag -m "..."' tatsächlich ein richtiges (ohne Vorzeichen mit Anmerkungen versehenes) impliziert. tag (Option '-a') und kein leichtes. Sie können also gut mit Ihrem anfänglichen Befehl umgehen.


Dies unterscheidet sich von:

git show-ref --tags -d

Welche Tags mit ihren Commits auflisten (siehe " Git-Tag-Liste, Commit sha1-Hashes anzeigen ").
Notieren Sie sich den -d, um das mit Anmerkungen versehene Tag-Objekt (das über einen eigenen Festschreibungs-SHA1 verfügt) zu dereferenzieren und den tatsächlichen festgeschriebenen Festschreibungscode anzuzeigen.

In ähnlicher Weise würde git show --name-only <aTag> das Tag und das zugehörige Commit auflisten.

805
VonC

So listen Sie von mir bevorzugte Tags auf:

git tag -n

Das Flag -n zeigt die erste Zeile der Anmerkungsnachricht zusammen mit dem Tag oder die erste Zeile der Festschreibungsnachricht an, wenn das Tag nicht mit Anmerkungen versehen ist.

Sie können auch git tag -n5 ausführen, um die ersten 5 Zeilen der Anmerkung anzuzeigen.

167
finn

Auch git show-ref ist ziemlich nützlich, so dass Sie Tags direkt mit dem Korrespondenten Commits verknüpfen können:

$ git tag
osgeolive-6.5
v8.0
...

$ git show-ref --tags
e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5
8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0
...
41
Campa

Und so finden Sie die Remote-Tags:

git ls-remote --tags Origin

25
Dimitri Dewaele

Versuchen Sie, git tag zu machen, es sollte ausreichen, wenn Sie nicht versuchen, git fetch und dann git tag zu machen.

12
toto

So zeigen Sie Details zum neuesten verfügbaren Tag an, das ich manchmal verwende:

git show `git describe` --pretty=fuller
9
Andrei Sura

Das Auflisten der verfügbaren Tags in Git ist unkompliziert. Geben Sie einfach git tag ein (optional -l oder --list).

$ git tag
v5.5
v6.5

Sie können auch nach Tags suchen, die einem bestimmten Muster entsprechen.

$ git tag -l "v1.8.5*"
v1.8.5
v1.8.5-rc0
v1.8.5-rc1
v1.8.5-rc2

Abrufen des neuesten Tags im Git-Repository

Der Befehl findet das letzte Tag, das über ein Commit erreichbar ist. Wenn das Tag auf das Commit verweist, wird nur das Tag angezeigt. Andernfalls wird der Tag-Name mit der Anzahl der zusätzlichen Festschreibungen über dem markierten Objekt und dem abgekürzten Objektnamen der letzten Festschreibung versehen.

git describe

Wenn --abbrev auf 0 gesetzt ist, kann der Befehl verwendet werden, um das nächstgelegene tagname ohne Suffix zu finden:

git describe --abbrev=0

Andere Beispiele:

git describe --abbrev=0 --tags # gets tag from current branch
git describe --tags `git rev-list --tags --max-count=1` // gets tags across all branches, not just the current branch

So bereinigen Sie lokale Git-Tags, die auf Remote-Computern nicht vorhanden sind

Einfach ausgedrückt, wenn Sie versuchen, etwas wie git fetch -p -t zu tun, funktioniert es ab der Git-Version 1.9.4 nicht mehr.

Es gibt jedoch eine einfache Problemumgehung, die in den neuesten Versionen noch funktioniert:

git tag -l | xargs git tag -d  // remove all local tags
git fetch -t                   // fetch remote tags
5
Lyes CHIOUKH

Wenn Sie den Tag-Namen lokal überprüfen möchten, müssen Sie zu dem Pfad gehen, in dem Sie das Tag erstellt haben (lokaler Pfad). Bedeutet, wo Sie Ihre Objekte abgelegt haben. Dann tippe den Befehl:

git show --name-only <tagname>

Es werden alle Objekte unter diesem Tag-Namen angezeigt. Ich arbeite in Teradata und object means view, table etc

4
Tanaya

Sie können alle vorhandenen Tags git tag auflisten oder die Liste mit git tag -l 'v1.1.*' filtern, wobei * als Platzhalter fungiert. Es wird eine Liste mit Tags zurückgegeben, die mit v1.1 markiert sind.

Sie werden feststellen, dass Sie beim Aufrufen von git tag den Inhalt Ihrer Anmerkungen nicht sehen können. Um eine Vorschau anzuzeigen, müssen Sie Ihrem Befehl -n hinzufügen: git tag -n2.

$ git tag -l -n2 v1.0 Release Version 1.0 v1.1 Release Version 1.1

Der Befehl listet alle vorhandenen Tags mit maximal 3 Zeilen ihrer Tag-Nachricht auf. Standardmäßig zeigt -n nur die erste Zeile an. Für weitere Informationen lesen Sie bitte auch dieser tagbezogene Artikel .

2
Nesha Zoric