Git Tag: リリースや重要なコミットにタグを付ける
git tag でリリースにバージョンタグを作成・一覧表示・push する方法を解説。注釈付きタグと軽量タグの違い、セマンティックバージョニングも説明します。
git tag -a v1.0.0 -m "Release version 1.0.0"詳細な説明
git tag は何をするのか?
git tag は特定のコミットに名前付きの参照を作成します。タグは一般的にリリースポイント(v1.0.0、v2.3.1)をマークし、プロジェクト履歴の中で安定した参照点を提供するために使われます。
注釈付きタグ vs. 軽量タグ
# 注釈付きタグ(リリースに推奨)
git tag -a v1.0.0 -m "Release version 1.0.0"
# 軽量タグ(単なるポインタ)
git tag v1.0.0-beta
注釈付きタグはタグ作成者名、日付、メッセージを保存します。完全な Git オブジェクトです。軽量タグはコミットへの単なるポインタであり、一時的またはプライベートなマーカーに使います。
タグの管理
# すべてのタグを一覧表示
git tag -l
# パターンに一致するタグを一覧表示
git tag -l "v2.*"
# タグの詳細を表示
git show v1.0.0
# 過去のコミットにタグを付ける
git tag -a v0.9.0 -m "Retroactive tag" abc1234
# ローカルタグを削除
git tag -d v1.0.0-beta
タグをリモートに push する
タグはデフォルトでは git push で push されません。明示的に push する必要があります:
# 単一のタグを push
git push origin v1.0.0
# すべてのタグを push
git push origin --tags
リモートタグの削除
git push origin --delete v1.0.0-beta
セマンティックバージョニングとタグ
MAJOR.MINOR.PATCH の規約に従います:
- MAJOR: 破壊的変更
- MINOR: 新機能(後方互換あり)
- PATCH: バグ修正
タグは CI/CD パイプラインと連携します。v1.2.0 のようなタグを push すると、本番デプロイが自動的にトリガーされます。タグはリリースプロセスに明確で不変の参照点を提供します。
ユースケース
チームがアプリケーションのバージョン2.0をリリースする準備が整い、リリースコミットに注釈付きタグを作成して push し、CI/CD デプロイパイプラインをトリガーする場面で使用します。