Git Flow
feature、develop、release、hotfix、main の 5 種類のブランチで開発を管理するブランチ戦略
Git Flow とは
Git Flow は、Vincent Driessen が 2010 年に提唱したブランチ戦略で、main (原典の表記は master)、develop、feature、release、hotfix の 5 種類のブランチを使い分ける。リリースサイクルが明確なプロジェクト (モバイルアプリ、パッケージソフトウェア) に適している。
ブランチ構成
ブランチ構成を図で示す。
main ─────────────────────────────────── (本番リリース)
│ ↑
└── develop ──────────────── release/1.0 ──→ main
│ ↑ ↑
└── feature/auth ──┘ │
└── feature/cart ──┘ │
│
main ── hotfix/fix-login ────────┘──→ main + develop
| ブランチ | 寿命 | 用途 |
|---|---|---|
| main | 永続 | 本番リリース済みのコード |
| develop | 永続 | 次のリリースの開発ベース |
| feature/* | 短命 | 機能開発 (develop から分岐) |
| release/* | 短命 | リリース準備 (develop から分岐) |
| hotfix/* | 短命 | 本番の緊急修正 (main から分岐) |
ワークフロー
developからfeature/add-authを作成- 機能を開発し、
developにマージ - リリース準備:
developからrelease/1.0を作成 - バグ修正を
release/1.0で行い、mainとdevelopにマージ mainにタグ (v1.0.0) を付けてリリース- 本番バグ:
mainからhotfix/fix-loginを作成し、mainとdevelopにマージ
GitHub Flow との比較
GitHub Flow との主な違いを以下に比較する。
| 観点 | Git Flow | GitHub Flow |
|---|---|---|
| ブランチ数 | 5 種類 | 2 種類 (main + feature) |
| 複雑さ | 高い | 低い |
| リリース頻度 | 低い (計画的リリース) | 高い (マージ = リリース) |
| 適するケース | モバイルアプリ、パッケージ | Web アプリ、SaaS |
Git Flow が不向きなケース
- CI/CD で頻繁にデプロイする Web アプリ → GitHub Flow の方がシンプル
- 小規模チーム (2〜3 人) → ブランチ管理のオーバーヘッドが大きい
- トランクベース開発を採用するチーム → develop ブランチが不要
作者の Vincent Driessen は 2010 年の原典に 2020 年 3 月の追記を加え、継続的デリバリーを行うチームには Git Flow を無理に当てはめず GitHub Flow のような単純なワークフローを採るよう勧めている。ただし撤回ではない。明示的にバージョンを持つソフトウェアや、複数バージョンを利用者の手元で並行サポートする場合は今も適合しうる、と条件を分けて述べている。
Git Flow を使うべきケース
- モバイルアプリ (App Store の審査があり、リリースが計画的)
- パッケージソフトウェア (バージョン管理が重要)
- 複数バージョンを同時にサポートする必要がある
Git Flow のブランチ運用例
Git Flow のブランチ運用例の例を示す。
# feature ブランチで開発
git checkout -b feature/order-validation develop
# ... 開発 ...
git checkout develop && git merge feature/order-validation
# リリース準備
git checkout -b release/1.2.0 develop
# ... バグ修正 ...
git checkout main && git merge release/1.2.0
git tag v1.2.0
git checkout develop && git merge release/1.2.0 # develop への戻しを忘れない
基礎から学ぶなら関連書籍が手がかりになる。
この記事は役に立ちましたか?
関連用語
Git
分散型バージョン管理システムで、ソースコードの変更履歴を管理する
トランクベース開発
全開発者が 1 つのメインブランチに頻繁にコミットし、長寿命ブランチを避ける開発手法
フィーチャーブランチとは - 機能ごとに独立したブランチで開発しマージする Git ワークフロー
機能ごとに独立したブランチを作成し、完成後にメインブランチにマージする Git ワークフロー
GitHub Flow
main ブランチとフィーチャーブランチだけで運用するシンプルなブランチ戦略
GitHub
Git を基盤としたソースコードのホスティング / 共同開発プラットフォーム
GitHub Actions
GitHub に統合された CI/CD プラットフォームで、ワークフローを YAML で定義して自動実行する
関連する記事
技術書ランキングの決定版はどれか - IT エンジニア本大賞の歴代大賞と言及数データで読む
技術書ランキングを探している人向けに、検証可能な 2 つのデータ (IT エンジニア本大賞の歴代大賞 2014-2026 年と、当サイトの Qiita / Zenn 言及数ランキング) を整理。歴代受賞作の一覧表と、ランキングを選書に活かす方法を解説します。
チーム開発 / マネジメント本ガイド - 技術リーダーが読むべき本
チーム開発、1on1、技術マネジメントを学べる技術書の選び方を紹介。メンバー時代からマネージャーまで、段階別の読書ロードマップを解説します。
JavaScript / TypeScript 本ガイド - 入門から型で守る実務コードまで
JavaScript と TypeScript を 1 本の学習ルートとして捉えた技術書の選び方。JavaScript の入門書、言語の背骨を通す体系書、TypeScript の型システムを設計の武器にする本、React/Next.js の実践書まで 2026 年 8 月時点の定番で案内します。