tl;dr
- Gitのtagは、特定のコミットに「意味のある名前」を付ける仕組みです
- リリース管理や過去バージョンの参照を簡単にします
- 軽量tagと注釈付きtagの違いを理解できます
-
git tag/git push --tagsを使った一連の流れがわかります
はじめに
Gitを使っていて、「この時点をv1.0.0として残しておきたい」「過去のリリースをすぐに参照したい」と思ったことはありませんか?
そのようなときに使うのが tag です。
本記事では、Gitのtagとは何か、どのようなメリットがあるのか、そして実際にどのようなコマンドで作成・管理するのかについて解説していきます。
Gitの基本操作(commit / push)ができることを前提に進めます。
tagとは?
Gitのtagとは、特定のコミットに対して付ける固定の名前です。
branchがコミットの進行に合わせて動くのに対し、tagは一度付けると基本的に動きません。
つまり、tagは次のような用途で使われます。
- リリースポイントの明示(例: v1.0.0)
- 重要なマイルストーンの記録
- 後から特定の状態を正確に参照するため
つまり、tagは「このコミットは特別である」という目印を付ける仕組みです。
branchとの違い
簡単に整理すると、次のような違いがあります。
- branch
- 作業の流れを管理する
- 新しいcommitが追加されると先に進む
- tag
- 特定のcommitを固定的に指す
- 基本的に更新しない
tagを作るメリットは?
tagを使うことで、次のようなメリットがあります。
- リリースバージョンを明確に管理できる
- 過去の状態をコマンド一発でチェックアウトできる
- CI/CDやデプロイと連携しやすくなる
特にチーム開発や運用フェーズでは、「どのコードがどのバージョンか」を明確にすることが重要です。
tagを使うことで、その管理が非常に楽になります。
tagの種類
Gitのtagには、主に2種類あります。
- 軽量tag(lightweight tag)
- 注釈付きtag(annotated tag)
それぞれについて説明します。
軽量tag
軽量tagは、単純にコミットに名前を付けるだけのtagです。
- メタ情報(作成者、日付、メッセージ)を持たない
- 一時的な目印として使われることが多い
注釈付きtag
注釈付きtagは、Gitオブジェクトとして保存される正式なtagです。
- 作成者、日付、メッセージを含む
- GPG署名を付けることも可能
- リリース用途ではこちらが推奨されることが多い
つまり、リリース管理には注釈付きtagを使うのが一般的です。
tagを作る方法
ここからは、実際にtagを作る一連のコマンドを見ていきます。
1. 現在のcommitにtagを付ける
まずは、現在のHEADに対してtagを付ける方法です。
軽量tagの場合
git tag v1.0.0
-
v1.0.0という名前のtagを作成します - 現在チェックアウトしているcommitが対象です
注釈付きtagの場合
git tag -a v1.0.0 -m "first release"
-
-aは annotated(注釈付き)を意味します -
-mでメッセージを指定します
2. 過去のcommitにtagを付ける
特定のcommitハッシュを指定してtagを付けることも可能です。
git tag -a v0.9.0 1a2b3c4d -m "beta release"
-
1a2b3c4dは対象のcommitハッシュです - 過去の任意の地点にtagを付けられます
軽量tagの場合の場合は以下です。
git tag v0.9.0 1a2b3c4d
過去のcommitハッシュは、git log --onelineで確認できます
3. tagの一覧を確認する
作成したtagは、次のコマンドで確認できます。
git tag
↓出力結果
v0.9.0
v1.0.0
- リポジトリ内のtagが一覧表示されます
4. tagをリモートにpushする
注意点として、tagは通常のgit pushではリモートに送信されません。
git push origin v1.0.0
- 特定のtagだけをpushします
すべてのtagをまとめてpushする場合は、次のコマンドを使います。
git push origin --tags
tagをpushし忘れると、他のメンバーから見えない状態になるため注意してください。
まとめ
- Gitのtagは、特定のcommitに付ける固定の名前です
- リリース管理や重要な節目の記録に向いています
- 実運用では注釈付きtagがよく使われます
-
git tag→git push --tagsが基本の流れです
tagを正しく使うことで、Gitリポジトリの履歴がぐっと読みやすくなります。
ぜひ、次のリリースや節目のタイミングでtagを付けてみてください。
