結論
git describe --tags --abbrev=0
※取得できるのはcheckoutしているブランチに対する最新のタグ情報です。
今までの自分
私:よし、リリースも終わったし、gitでタグを打つぞ!!
私:そのためには今のタグを調べないといけないなぁ〜〜。
私:とりあえず、「git tag」コマンドを入力っと。
$ git tag
v1.0.0
v1.1.0
:
:
v90.1.5
v90.10.0
v90.2.0
:
:
v90.9.4
私:うわ、いっぱいタグが並んでるやん!!!!
私:え〜〜〜〜っと、最新のタグは、命名規則にしたがうと...これだ!
私:だから、今回打つタグ名は「v90.9.5」だ!!!
私:おっと危ない、並びに騙されるところだった。やっぱり「v90.10.1」だ!!!
上記では一見「v90.9.4」が最新のタグに見えますが、「v90.10.0」が命名規則的には最新です。
これからの自分
私:よし、リリースも終わったし、gitでタグを打つぞ!!
私:そのためには今のタグを調べないといけないなぁ〜〜。
私:とりあえず、「git describe」コマンドを入力っと。
$ git describe --tags
v90.10.0-8-gxxxxxxxx
私:だから、今回打つタグ名は「v90.10.1」だ!!!
上記では最新のタグが「v90.10.0」ということが一目でわかります。
この「git describe」を使うと自分の目でリストから探す必要がなくなります。
git describeって?
describeは直訳すると「説明」という意味です。
git describeを実行すると「checkoutしているブランチ」の説明として、ハイフン区切りで「タグ名」と「このタグからのコミット回数」と「コミットに対するハッシュ値」が取得できます。
フォーマットに当てると以下のような感じです。
タグ名-コミット回数-gコミットのハッシュ値
※コミットのハッシュ値の頭にはgがつきます。このgは「git」って意味らしいです。
オプション「--tags」
オプションで「--tags」とするとそのブランチ以外で打たれたタグを考慮した結果になります。
オプション「--abbrev」
オプションで「--abbrev=0」とすると「タグ名」のみが取得できます。
オプションで「--abbrev=1」とすると「タグ名」と「コミット回数」と「コミットに対するハッシュ値」が取得できます。
この数字って?
0を指定するとタグ名のみです。
1以上を指定すると「タグ名」と「コミット回数」と「コミットに対するハッシュ値」が取得できます。
1以上は同じ?
1以上を指定すると同じなのか?というと、違います。
1~5を指定すると「コミットに対するハッシュ値」が5文字で
6以上で指定すると「コミットに対するハッシュ値」が指定した文字数で取得できます。
最後に
私のようにタグのリストに目を酷使している人がこの記事によって救われれば幸いです。
参考