Case Studies

現場で学ぶ
Git Flow 導入事例

チーム規模やプロジェクトの特性によって、Git Flow の運用方法は変わります。 4つのシナリオで、導入のリアルを追体験しましょう。

// Case 01

5人チームの EC サイト開発

Project Profile

👥
5 名
チーム規模
📅
2 週間
スプリント周期
🚀
月 2 回
リリース頻度
🛠
Next.js + Rails
技術スタック

背景

創業2年目のスタートアップ。エンジニア3名、デザイナー1名、PM 1名の構成。 自社 EC サイトの新機能(クーポン機能・レコメンド機能)を並行開発する必要があった。 以前は main ブランチに直接 push していたが、デプロイ後に不具合が頻発し、Git Flow を導入。

1

導入前の課題

main に直接 push する運用で、以下の問題が起きていた。

Pain Points

  •  金曜夕方の push でバグ混入 → 週末対応が常態化
  •  「誰かが push したら自分のコードが壊れた」が頻発
  •  リリース範囲が不明確で、意図しない変更が本番に
  •  レビューなし → バグの早期発見ができない
2

Git Flow 導入で決めたルール

Team Rules

  •  feature ブランチは必ず PR 経由で develop にマージ
  •  PR には最低1人のレビュー承認を必須に
  •  release ブランチはスプリント最終日に作成
  •  hotfix は Slack で即共有 → 30分以内に対応開始
  •  feature → develop は Squash merge で履歴をクリーンに
3

導入後の効果

📈

本番バグ 70% 減

PR レビューの義務化により、デプロイ前にバグを検出できるようになった。

📅

リリース予測可能に

release ブランチで「何がリリースされるか」が明確になり、PM が安心してスケジュールを組めるように。

// Case 02

20人チームのモバイルアプリ開発

Project Profile

👥
20 名
エンジニア
📱
iOS / Android
プラットフォーム
📅
月 1 回
App Store 申請
📊
MAU 50万
アクティブユーザー

なぜ Git Flow がフィットしたか

モバイルアプリは App Store / Google Play の審査があるため、「いつでもデプロイ」ができない。 release ブランチで QA → 審査提出 → 承認待ちの期間を管理しつつ、 develop では次バージョンの開発を進められる Git Flow がぴったりだった。

A

審査中の hotfix 問題

v2.3.0 の審査待ち中に、v2.2.0 で決済エラーが発覚。 main (= v2.2.0) から hotfix を切り、緊急リリース (v2.2.1) を審査に出した。

ブランチの状態
main         v2.2.0 ─── v2.2.1 (hotfix)
release/2.3.0  QA中 → 審査提出待ち
develop        v2.4.0 の機能開発中
feature/*      3チームが並行開発中

学び: Git Flow なら「審査中のリリース」「本番の緊急修正」「次バージョンの開発」を 3本のブランチで同時に管理できる。これは GitHub Flow では難しい。

B

feature フラグとの併用

大きな機能(チャット機能)は完成まで3スプリントかかるため、 feature フラグで非表示にしたまま develop にマージし、 完成後にフラグを有効化する運用に。

メリット

長寿命 feature ブランチによるコンフリクト地獄を回避。 develop との差分が小さいうちにマージするので、統合リスクが激減した。

// Case 03

BtoB SaaS の並行バージョン管理

Project Profile

🏢
50 名
開発組織
💻
業務システム
プロダクト種別
🔗
3 バージョン
並行サポート
💰
SLA 99.9%
可用性要件

課題: 顧客ごとにバージョンが違う

エンタープライズ顧客は移行スケジュールが異なるため、v3.x / v4.x / v5.x を並行サポートする必要があった。 Git Flow をベースに、サポートブランチ (support/v3.x, support/v4.x) を追加して運用。

拡張ブランチ構成
main           最新の安定版 (v5.2.0)
develop        v5.3.0 の開発中
feature/*      新機能開発
release/5.3.0  次回リリース準備

# Git Flow 標準にはない「サポートブランチ」
support/v4.x   v4 系のセキュリティパッチ用
support/v3.x   v3 系の重大バグ修正のみ

# 例: v4 系に hotfix を当てる場合
git checkout -b hotfix/v4-security support/v4.x
# 修正後
git checkout support/v4.x
git merge --no-ff hotfix/v4-security
git tag v4.8.3

運用のポイント

セキュリティパッチは support/v3.x → support/v4.x → main の順にチェリーピックで適用。 機能追加は最新バージョンのみ。旧バージョンへのバックポートは厳格にセキュリティと重大バグに限定した。 これにより、50人の開発チームでも混乱なく3バージョンを維持できている。

// Case 04

Git Flow からの卒業 — Web アプリの場合

Project Profile

👥
8 名
チーム規模
🌐
Web SaaS
プロダクト
🚀
1日 5回
目標デプロイ頻度
CI/CD 完備
インフラ

Git Flow が合わなくなった理由

CI/CD パイプラインが整備され、テストカバレッジも 90% を超えた。 1日に何度もデプロイしたいのに、release ブランチの作成・QA・マージが「儀式」になっていた。 develop と main の差分がほぼゼロの状態が続き、2本のブランチを維持する意味が薄れた。

1

GitHub Flow に移行

develop ブランチを廃止。main から直接 feature を切り、PR マージ後に自動デプロイする構成に変更。

移行後のフロー
Before (Git Flow):
main ← release ← develop ← feature
     4ブランチ / 手動リリース / 月2回デプロイ

After (GitHub Flow):
main ← feature
     2ブランチ / 自動デプロイ / 1日5回デプロイ
2

移行で気をつけたこと

Migration Checklist

  •  テストカバレッジ 80% 以上を確認
  •  CI/CD が main マージで自動デプロイする構成に
  •  feature フラグの仕組みを先に導入
  •  ロールバック手順を文書化
  •  1ヶ月の並行運用期間で慣らし

重要: この事例は「Git Flow がダメ」という話ではありません。 プロジェクトの成熟度や要件が変われば、最適なブランチ戦略も変わるということです。 Git Flow で学んだ「ブランチの役割を明確にする」という考え方は、どの戦略に移行しても活きます。

// Decision Guide

あなたのチームに合うか判断する

Quick Decision Tree

以下の質問に Yes / No で答えてみてください。

Q1. リリースに承認プロセスや審査がある?

Yes → Git Flow が有力候補

No → Q2 へ

Q2. 複数バージョンを並行サポートする?

Yes → Git Flow + support ブランチ (Case 03)

No → Q3 へ

Q3. CI/CD が整備され、テストカバレッジが高い?

Yes → GitHub Flow / Trunk-Based を検討

No → Git Flow で段階的に整備

Q4. チームが5人以上 or リリース頻度が月2回以下?

Yes → Git Flow が安定

No → GitHub Flow で十分な可能性