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?
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?
Antworten:
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 auf:
Hinweis: Der git-fähige Artikel zum Markieren missbilligt das leichte Tag.
Ohne Argumente erstellt das Git-Tag ein "leichtes" Tag, das im Grunde ein Zweig ist, der sich nie bewegt.
Leichte Tags sind jedoch immer noch nützlich, möglicherweise 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 (nicht signiertes, mit Anmerkungen versehenes) Tag (Option ' -a
') impliziert und kein leichtes. Sie sind also gut mit Ihrem anfänglichen Befehl.
Dies unterscheidet sich von:
git show-ref --tags -d
Welche listet Tags mit ihren Commits auf (siehe " Git-Tag-Liste, Commit-sha1-Hashes anzeigen ").
Beachten Sie das, -d
um das mit Anmerkungen versehene Tag-Objekt (das über ein eigenes Commit SHA1 verfügt) zu dereferenzieren und das tatsächlich mit Tags versehene Commit anzuzeigen.
In ähnlicher Weise git show --name-only <aTag>
würde das Tag und das zugehörige Commit aufgelistet.
Um Tags aufzulisten, bevorzuge ich:
git tag -n
Das -n
Flag zeigt die erste Zeile der Anmerkungsnachricht zusammen mit dem Tag oder die erste Commit-Nachrichtenzeile an, wenn das Tag nicht mit Anmerkungen versehen ist.
Sie können auch git tag -n5
die ersten 5 Zeilen der Anmerkung anzeigen.
Ist auch git show-ref
ziemlich nützlich, damit Sie Tags direkt mit entsprechenden 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
...
hg tags
ich an Mercurials gewöhnt bin, mag git show-ref
ich das Tag UND die Revision.
Und so finden Sie die Remote-Tags:
git ls-remote --tags origin
Versuchen Sie es zu machen git tag
sollte ausreichen, wenn nicht versuchen Sie es git fetch
dann zu machen git tag
.
git tag
Befehls sollte ausreichen, wenn Sie nur eine Liste der verfügbaren Tags anzeigen möchten. Wenn Sie einige Tags nicht sehen können, von denen Sie glauben, dass sie auf der Fernbedienung vorhanden sind, sind Ihre lokalen Tags möglicherweise nicht mit der Fernbedienung synchronisiert. In diesem Fall rufen Sie zuerst die neuesten Refs / Köpfe von der Fernbedienung ab git fetch
, gefolgt von den tatsächlichen git tag
. Normalerweise fahre ich einen Einzeiler wie diesen: $ git fetch -p && git tag
Nur um sicherzugehen, dass ich auf dem neuesten und besten Stand bin.
Das Auflisten der verfügbaren Tags in Git ist unkompliziert. Geben Sie einfach git tag
(mit optional -l
oder --list
) ein.
$ 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 neueste Tag, das über ein Commit erreichbar ist. Wenn das Tag auf das Commit zeigt, wird nur das Tag angezeigt. Andernfalls wird der Tag-Name mit der Anzahl der zusätzlichen Commits über dem markierten Objekt und dem abgekürzten Objektnamen des letzten Commits versehen.
git describe
Mit --abbrev
set to 0
kann der Befehl verwendet werden, um den nächsten 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 beschneiden Sie lokale Git-Tags, die auf der Fernbedienung nicht vorhanden sind
Um es einfach auszudrücken: Wenn Sie versuchen, so etwas zu tun git fetch -p -t
, funktioniert es ab der Git-Version nicht mehr 1.9.4
.
Es gibt jedoch eine einfache Problemumgehung, die in den neuesten Versionen weiterhin funktioniert:
git tag -l | xargs git tag -d // remove all local tags
git fetch -t // fetch remote tags
v0.1.0-rc1 fatal: No tags can describe '5db7534...4a94'. Try --always, or create some tags.
Um Details zum neuesten verfügbaren Tag anzuzeigen, verwende ich manchmal:
git show `git describe` --pretty=fuller
Wenn Sie Ihren 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 platziert haben. Geben Sie dann den folgenden Befehl ein:
git show --name-only <tagname>
Es werden alle Objekte unter diesem Tag-Namen angezeigt. Ich arbeite in Teradata und Objekt bedeutet Ansicht, Tabelle usw.
Sie können alle vorhandenen Tags auflisten git tag
oder die Liste mit filtern git tag -l 'v1.1.*'
, wobei sie *
als Platzhalter fungiert. Es wird eine Liste der mit gekennzeichneten Tags zurückgegeben v1.1
.
Sie werden feststellen, dass Sie beim Anruf git tag
den Inhalt Ihrer Anmerkungen nicht sehen können. Um eine Vorschau anzuzeigen, müssen Sie -n
Ihrem Befehl Folgendes 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 wird -n
nur die erste Zeile angezeigt . Weitere Informationen finden Sie auch in diesem Artikel zum Thema Tags .
Damit eine GUI dies tun kann, habe ich gerade festgestellt, dass 'gitk' benannte Ansichten unterstützt. Die Ansichten bieten verschiedene Optionen zum Auswählen von Commits. Eine praktische ist eine Box zur Auswahl von "Alle Tags". Das scheint für mich zu funktionieren, um die Tags zu sehen.