Für Releases tagge ich normalerweise mit etwas wie v1.1.0. Während meines Build-Skripts erstelle ich eine fwVersion.c-Datei, die die aktuellen Git-Informationen enthält. Derzeit habe ich Commit- und Zweiginformationen in der Datei, möchte aber das Tag hinzufügen.
Ist das möglich?
git describe --tags <commit-id>
für nicht kommentierte Tagsgit describe --all --exact-match `git rev-parse HEAD`
git describe --tags --abbrev=0 REV
dies hilfreich, wenn Sie den Müll nicht auf dem Tag haben möchten.git describe --all
(für das aktuell ausgecheckte Commit) odergit describe --all <commit>
haben immer fast alles getan, was ich jemals wollte.Wenn Sie das erste Tag möchten, das das Commit enthält, dann:
gibt die beste Antwort IMO. Wenn Sie häufige Tags haben als die Verwendung von "git tag --contains" für ein altes Commit in einem großen Repository, kann die Ausführung eine Weile dauern und Sie erhalten alle Tags, die dieses Commit enthalten.
Diese Form der Git-Beschreibung wird sehr schnell ausgeführt und gibt Ihnen einen einzelnen Ausgabewert, der das erste Tag ist, das das Commit enthält, und wie weit Ihr Commit zurückliegt.
quelle
Wie wäre es damit?
git tag --points-at <commit-id>
Es gibt Ihnen alle Tags, die das angegebene Commit hat (während
git describe
es Ihnen nur eines gibt), und enthält keine Tags für Nachkommen-Commits (wie dies dergit tag --contains
Fall ist).quelle
Sie finden diese Informationen im Handbuch
quelle
Ich fand die Kombination der beiden Top-Antworten, um mir zu geben, was ich wollte:
Dies gibt Ihnen das Tag, das NUR für dieses Commit und für diejenigen ohne Anmerkung ist. Nützlich, wenn Sie Tags suchen möchten und sich nicht darum kümmern müssen, die Formatierung zu entfernen (z. B. für Jenkins).
z.B.
$ git describe --tags --exact-match head~2
Gibt Ihnen:
quelle
Einige der Antworten konsolidieren:
git tag --contains [<ref>]
und
git tag --points-at [<ref>]
oder nur
git tag
Verhalten Sie sich gleich und drucken Sie alle (und alle) Tags für die angegebene Referenz oder das aktuelle Commit, falls nicht angegeben.
git describe --tags [<ref>]
wo
<ref>
standardmäßig die aktuellen begeht, Ausfahrten mit 128 , wenn keine Tags zugeordnet sind , mit dem Commit, und druckt einen Tag im Zusammenhang mit der Commit (es scheint kein Muster zu sein).git describe [<ref>]
verhält sich genauso wie mit,--tags
außer dass nur kommentierte Tags gedruckt werden.Wenn Sie die Option
--contains
zumdescribe
Drucken eines Tags verwenden, das einem Vorfahren des angegebenen Commits zugeordnet ist. Beispielsweisequelle