12 初級 約 20 分

タグとリリース管理

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 <[email protected]>
Date:   Mon Aug 4 10:00:00 2026 +0900

最初のリリース

commit a1b2c3d4e5f6...
Author: Taro Yamada <[email protected]>
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 --tags

GitHub にタグを 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 コマンドリファレンス も参照してください。