応用

git tag

特定のコミットに名前を付けてマークします。リリースバージョンなど、重要な地点を記録するのに使います。

構文 git tag [options] <tagname> [commit]

オプション

フラグ 説明
-a / --annotate アノテーションタグを作成します。作成者・日時・メッセージが記録され、GPG 署名も可能です。
-m <message> アノテーションタグにメッセージを付けます。-a と組み合わせて使います。
-d / --delete 指定したタグを削除します。
-l / --list タグの一覧を表示します。パターンを指定して絞り込むこともできます(例: git tag -l "v1.*")。
--contains 指定したコミットを含むタグのみを一覧表示します。あるコミットがどのリリースに含まれるか調べるのに使います。

git tag は、特定のコミットに固定の名前(タグ)を付けるコマンドです。主にリリースバージョン(v1.0.0 など)をマークするために使われます。ブランチと違い、タグが指す先のコミットは基本的に変わりません。

軽量タグとアノテーションタグの違い

Git のタグには2種類あります。

種類作成コマンド記録される情報主な用途
軽量タグ(lightweight)git tag <name>コミットへの参照のみ一時的な目印、ローカルでのブックマーク
アノテーションタグ(annotated)git tag -a <name> -m "<message>"作成者・日時・メッセージ・(任意で)GPG 署名リリースタグなど、公式な記録として残したいもの

リリースには基本的にアノテーションタグを使うのが推奨されます。「誰が・いつ・なぜ」タグを付けたかが記録として残るためです。

基本的な使い方

# 軽量タグを作成する
git tag v0.1.0-beta

# アノテーションタグを作成する(推奨)
git tag -a v1.0.0 -m "初回正式リリース"

# 過去のコミットに対してタグを付ける
git tag -a v0.9.0 -m "ベータ版" a1b2c3d

タグの一覧・詳細を確認する

# すべてのタグを一覧表示
git tag

# パターンで絞り込む
git tag -l "v1.*"

# タグの詳細情報を確認する(アノテーションタグの場合はメッセージも表示)
git show v1.0.0

タグをリモートに共有する

タグは git push だけでは送信されません。明示的にタグを push する必要があります。

# 特定のタグをリモートに push
git push origin v1.0.0

# すべてのタグを一括で push
git push origin --tags

タグを削除する

# ローカルのタグを削除
git tag -d v0.1.0-beta

# リモートのタグを削除
git push origin --delete v0.1.0-beta

あるコミットがどのタグに含まれるか調べる

# 指定コミットを含むタグを一覧表示
git tag --contains a1b2c3d

「このバグ修正はどのバージョンから含まれているか」を調べるときに便利です。

ヒント

  • タグ名は v1.0.0 のようにセマンティックバージョニングに従うことが多いです。
  • タグはブランチと違い自動的に移動しません。同じ名前のタグを付け直したい場合は -f(force)オプションが必要です。