git tag
特定のコミットに名前を付けてマークします。リリースバージョンなど、重要な地点を記録するのに使います。
構文
git tag [options] <tagname> [commit] 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)オプションが必要です。