Git運用 レッスン5

リリース管理とバージョニング

セマンティックバージョニングやタグを使ったリリース管理と、変更履歴の残し方を学ぶ

セマンティックバージョニング

セマンティックバージョニング(SemVer)は、 バージョン番号をMAJOR.MINOR.PATCHの 3つの数値で表し、それぞれの変更内容を数字の意味に反映させる規約です。

v2.5.1
 ^ ^ ^
 | | └ PATCH: 後方互換性のあるバグ修正
 | └── MINOR: 後方互換性を保ったままの機能追加
 └──── MAJOR: 後方互換性を壊す変更(破壊的変更)

MAJOR

既存APIの引数変更や、フィールド削除など互換性のない変更

MINOR

既存の使い方を壊さずに新しいエンドポイントやオプションを追加

PATCH

バグ修正やセキュリティパッチなど、振る舞いの追加を伴わない修正

ポイント

SemVerは特にライブラリやAPIを外部の利用者に提供する場合に重要です。 利用者はMAJORバージョンが上がったときだけ、移行作業が必要かもしれないと判断できます。

タグを使ったリリース管理

Gitのタグを使うと、特定のコミットに「このコミットがv2.5.1としてリリースされた」という 目印を付けられます。

# 注釈付きタグを作成する(メッセージ付きで記録が残る)
git tag -a v2.5.1 -m "注文履歴のページネーション機能を追加"

# タグをリモートリポジトリにpushする
git push origin v2.5.1

# 過去のタグ一覧を確認する
git tag --list

# 特定のタグ時点のコードを確認する
git checkout v2.5.1

CHANGELOGの書き方

CHANGELOGは、各バージョンでどんな変更があったかを人間が読める形でまとめたドキュメントです。 「Added(追加)」「Changed(変更)」「Fixed(修正)」のようにカテゴリ分けして書くと読みやすくなります。

## [2.5.1] - 2026-07-20

### Added
- 注文履歴ページにページネーションを追加

### Fixed
- カート合計金額が税込で計算されない不具合を修正

## [2.5.0] - 2026-07-01

### Added
- ユーザープロフィール編集画面を追加

### Changed
- ログインセッションの有効期限を24時間に変更

リリースブランチとホットフィックス

GitHub Flow / トランクベース開発を採用していても、 複数バージョンを同時にサポートする必要がある場合は、リリース時点のコミットからrelease/v2.5のような ブランチを作り、そこにパッチだけを適用していく運用が使われることがあります。

本番で緊急のバグが見つかった場合は、そのリリースブランチ(またはmain)から 最小限の修正を行うホットフィックスとして対応し、影響範囲のあるすべてのバージョンに 反映します。

ポイント

  • • セマンティックバージョニングはMAJOR.MINOR.PATCHで変更の性質を表す
  • • MAJORは破壊的変更、MINORは互換性のある機能追加、PATCHはバグ修正
  • • Gitのタグでリリース時点のコミットに目印を付けられる
  • • CHANGELOGはカテゴリ分けして書くと変更内容が読みやすくなる
  • • 複数バージョンの同時サポートが必要な場合はリリースブランチとホットフィックスを使う

確認クイズ

1 / 3

セマンティックバージョニングでMINORバージョンを上げるべき変更はどれか?