タグとリリース管理
git tag を使ったバージョン管理とリリースフローを演習問題で学びます。
このチュートリアルでは、git tag を使ったバージョン管理とリリース作業を演習形式で学びます。タグを使うと「v1.0.0 をリリースした時点」のスナップショットを名前付きで残せます。
前提: ターミナルで Git が使える状態で、コミット済みのローカルリポジトリがあることを想定しています。
タグとは
タグは、特定のコミットに付ける「名前のラベル」です。バージョンリリースの目印として使われます。
コミット履歴
a1b2c3d ← v1.0.0 のタグが付いている
f4e5d6c
9g8h7i0 ← v0.9.0 のタグが付いている
GitHub では、タグが GitHub Releases の起点になります。タグを push するとリリースページを作成できます。
演習 1:軽量タグと注釈付きタグを作る
Git のタグには2種類あります。違いを理解して両方作ってみましょう。
問題: 現在の HEAD コミットに対して、以下の2種類のタグを作成してください。
- 軽量タグ(lightweight tag):
v0.1 - 注釈付きタグ(annotated tag):
v1.0.0(メッセージは「最初のリリース」)
答えを見る
# 軽量タグ:コミットへの単純なポインタ
git tag v0.1
# 注釈付きタグ:作成者・日時・メッセージを含む
git tag -a v1.0.0 -m "最初のリリース"
| 種類 | コマンド | 用途 |
|---|---|---|
| 軽量タグ | git tag <name> | 一時的なラベル、個人用メモ |
| 注釈付きタグ | git tag -a <name> -m "..." | 公式リリース(推奨) |
リリース用には 注釈付きタグ を使うのが Git の慣習です。署名(-s)を加えることもできます。
演習 2:タグを一覧表示してコミットを確認する
作成したタグを確認してみましょう。
問題: 作成したタグの一覧を表示し、v1.0.0 タグの詳細(タグメッセージ・コミット情報)を確認するコマンドを書いてください。
答えを見る
# タグの一覧を表示
git tag
# パターンで絞り込む(例:v1 から始まるタグ)
git tag -l "v1.*"
# タグの詳細を確認(注釈付きタグはメッセージも表示される)
git show v1.0.0出力例:
tag v1.0.0
Tagger: Taro Yamada <taro@example.com>
Date: Mon Aug 4 10:00:00 2026 +0900
最初のリリース
commit a1b2c3d4e5f6...
Author: Taro Yamada <taro@example.com>
Date: Mon Aug 4 09:55:00 2026 +0900
初期実装を追加git show <タグ名> で、タグが指し示すコミットの内容まで確認できます。
演習 3:タグをリモートに push する
タグはデフォルトでは git push でリモートに送られません。明示的に push する必要があります。
問題: 以下の2パターンでタグを push するコマンドを書いてください。
v1.0.0タグだけを push する- ローカルのすべてのタグを一括 push する
答えを見る
# 特定のタグだけ push
git push origin v1.0.0
# すべてのタグを一括 push
git push --tagsGitHub にタグを push すると、リポジトリの 「Releases」 ページからリリースノートを作成できるようになります。
ヒント:
git push --follow-tagsを使うと、コミットと注釈付きタグをまとめて push できます。
演習 4:過去のコミットにさかのぼってタグを付ける
リリースを忘れていた場合など、過去のコミットにタグを付けられます。
問題: git log --oneline でコミット履歴を確認し、1つ前のコミットに v0.9.0 タグを付けてください。
答えを見る
# まず履歴を確認してコミットハッシュを調べる
git log --oneline
# 出力例:
# a1b2c3d (HEAD -> main, tag: v1.0.0) 初期実装を追加
# f4e5d6c ドラフトを追加
# 過去のコミット(f4e5d6c)にタグを付ける
git tag -a v0.9.0 f4e5d6c -m "ベータリリース"
# タグが付いたことを確認
git log --oneline --decorateコミットハッシュは最初の数文字(7文字程度)だけでも認識されます。
演習 5:タグを削除する
誤ったタグを付けてしまった場合の削除方法を学びましょう。
問題: ローカルの v0.1 タグを削除してください。すでにリモートに push してしまった場合のリモート削除コマンドも書いてください。
答えを見る
# ローカルのタグを削除
git tag -d v0.1
# リモートのタグを削除
git push --delete origin v0.1
# または
git push origin :refs/tags/v0.1注意: タグの削除は他のメンバーへの影響が大きいため、リモートのタグ削除は慎重に行ってください。すでに他のシステム(CI/CD や GitHub Releases)で参照されている場合は特に注意が必要です。
セマンティックバージョニング
リリースタグには v MAJOR.MINOR.PATCH 形式(セマンティックバージョニング)を使うのが一般的な慣習です。
| 部分 | 意味 | 例 |
|---|---|---|
| MAJOR | 後方互換性のない変更 | v2.0.0 |
| MINOR | 後方互換性のある新機能追加 | v1.1.0 |
| PATCH | バグ修正 | v1.0.1 |
# 例:バグ修正のリリース
git tag -a v1.0.1 -m "ログイン画面のバグを修正"
git push origin v1.0.1
詳細は semver.org を参照してください。
まとめ
このチュートリアルで学んだリリースフロー:
1. 開発・コミット
2. git tag -a v1.0.0 -m "リリース内容" ← 注釈付きタグを作成
3. git push origin main ← コードを push
4. git push origin v1.0.0 ← タグを push
5. GitHub でリリースノートを作成(任意)
タグを使うことで、どのコミットが本番環境にデプロイされたかを明確に記録できます。
コマンドの詳細は git tag コマンドリファレンス も参照してください。