547 Stimmen

Wie kann man feststellen, auf welchen Commit ein Tag in Git verweist?

Ich habe einen Haufen unkommentierter Tags im Repository und möchte herausfinden, auf welchen Commit sie verweisen. Gibt es einen Befehl, der einfach die Tags und ihre Commit-SHAs auflistet? Das Auschecken der Tags und das Betrachten des HEADs erscheint mir etwas zu mühsam.

Update

Nachdem ich die Antworten durchgesehen hatte, wurde mir klar, dass ich eigentlich nur die Vorgeschichte der Markierung betrachten wollte, für die git log <tagname> ist ausreichend.

Die Antwort, die als Antwort markiert ist, ist nützlich, um eine Liste von Tags und deren Übertragungen zu erhalten, was meine Frage war. Mit ein bisschen Shell-Hackery bin ich sicher, dass es möglich ist, diese in SHA+Commit Nachricht umzuwandeln.

38voto

Jakub Narębski Punkte 286531

Verwenden Sie

git rev-parse --verify <tag>^{commit}

(die SHA-1 eines Commits auch für annotierte Tags zurückgeben würde).


git show-ref <tag> würde auch funktionieren, wenn <tag> wird nicht kommentiert. Und es gibt immer git for-each-ref (siehe Dokumentation für weitere Einzelheiten).

15voto

Tuong Le Punkte 17454

Wie wäre es damit:

git log -1 $TAGNAME

OR

git log -1 origin/$TAGNAME

13voto

Daniel Little Punkte 16296

Um den sha/hash des Commits zu erhalten, auf den sich ein Tag bezieht (nicht den sha des Tags):

git rev-list -1 <tag>

10voto

Jesper Rønn-Jensen Punkte 98301

Kurze Antwort nach Git-2

Ich weiß, dass diese Frage hier schon eine ganze Weile gestellt wird. Und die Antwort von CB Bailey ist zu 100 % richtig: git show-ref --tags --abbrev

Diese gefällt mir besser, da sie mit git tag :

git tag --list --format '%(refname:short) %(objectname:short)'

Einfach. Kurz.

PS alias es als git taglist mit diesem Befehl:

git config --global alias.taglist "tag --list --format '%(refname:short) %(objectname:short)'"

9voto

gahooa Punkte 121696

Ich würde auch gerne den "richtigen" Weg kennen, aber in der Zwischenzeit können Sie dies tun:

git show mytag | head -1

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X