112

git を使用しているプロジェクトがあり、すべてのリリースにタグを付けました。

$ git tag
v1.0.0
v1.0.1
v1.0.2
v1.0.3
v1.1.0

私の目標は、Web インターフェースにリリースとリリース日をリストすることです (タグ/コミット日 = リリース日)。現在、 を使用してすべてのリリースを一覧表示していますgit tag

タグが作成された日時 (またはタグが指すコミット) を取得するにはどうすればよいですか?

4

7 に答える 7

104

これは常に私のために働いた:

git log --tags --simplify-by-decoration --pretty="format:%ci %d"

別の日付フォーマットが必要な場合は、フォーマット文字列の詳細について、git-log マンページの「PRETTY FORMATS」セクションを参照してください。

于 2012-11-03T11:42:53.077 に答える
86

--format次の引数を使用しgit logます。

git log -1 --format=%ai MY_TAG_NAME
于 2012-11-03T11:43:40.083 に答える
57

もう 1 つのオプション:

git for-each-ref --format="%(refname:short) | %(creatordate)" "refs/tags/*"

形式オプションについては、 https://git-scm.com/docs/git-for-each-ref#_field_namesを参照してください

%(creatordate)使用時にタグが作成された日付を確認するために、コミットの日付を示します%(taggerdate)

シェルを直接組み込むことができます:

$> git for-each-ref --shell --format="ref=%(refname:short) dt=%(taggerdate:format:%s)" "refs/tags/*"

ref='v1.10' dt='1483807817'
ref='v1.11' dt='1483905854'
ref='v1.12.0' dt='1483974797'
ref='v1.12.1' dt='1484015966'
ref='v1.13' dt='1484766542'
ref='v1.2' dt='1483414377'
ref='v1.3' dt='1483415058'
ref='v1.3-release' dt='' <-- not an annotated tag, just a pointer to a commit so no 'taggerdate', it would have a 'creator date'.
ref='v1.3.1' dt='1483487085'
ref='v1.4' dt='1483730146'
ref='v1.9' dt='1483802985'
于 2017-02-12T18:39:49.740 に答える
28

上記の両方のソリューションでコミット日が取得されることに注意してください。これは、そのコミットがリリース用にタグ付けされた日付とは大きく異なる可能性があります。タグ自体の日付を取得するには、 でタグ自体を検索しrev-parse、 で読み取りcat-file、解析する必要があります。ちょっとしたパイプライン:

git rev-parse v1.0.0 | xargs git cat-file -p | egrep '^tagger' | cut -f2 -d '>'

于 2014-12-12T14:43:53.027 に答える
3

git tag コマンドには、これを行う簡単なオプションはありません。実行するのが最も便利であることがわかりました

git log --decorate=full

タグがある場合は、タグを含むすべてのコミットを一覧表示します。タグ付けされたコミットのみを一覧表示するには、次を使用します

git log --decorate=full --simplify-by-decoration

詳しくはこちら

git help log
于 2016-05-09T09:36:58.167 に答える