TechCraft – エンジニアのためのスキルアップメモ

エンジニアのスキルアップを少しでも加速する技術ブログ

Git-flowの基本と実践

Git-flowの基本と実践

1. Git-flowとは?

Git-flowは、ソフトウェア開発におけるブランチ戦略の1つで、チーム開発に適したGitのワークフローです。
Vincent Driessenが考案し、多くのプロジェクトで採用されています。
Git-flowを使うことで、機能開発、リリース、バグ修正 などのフローを明確に分け、チーム開発を効率的に進められます。

Git-flowの主な特徴

  • ブランチが明確に役割分担される
  • 安定したリリース管理ができる
  • 並行開発がスムーズになる

2. Git-flowのブランチ構成

Git-flowでは、以下の5種類のブランチを使用します。

ブランチ名 用途
main 本番環境の安定版
develop 開発中の最新コード
feature 新機能の開発用
release リリース準備用
hotfix 本番環境の緊急修正

Git-flowのブランチ構成図

以下のMermaid図は、Git-flowの基本的なブランチの流れを示しています。

gitGraph
    commit id: "Initial commit" tag: "v1.0"
    branch develop
    commit id: "Develop start"
    branch feature/new-feature
    commit id: "Feature work 1"
    commit id: "Feature work 2"
    checkout develop
    merge feature/new-feature tag: "Feature merged"
    branch release/v1.1
    commit id: "Release preparation"
    checkout main
    merge release/v1.1 tag: "v1.1 Release"
    branch hotfix/fix-bug
    commit id: "Hotfix applied"
    checkout main
    merge hotfix/fix-bug tag: "v1.1.1 Hotfix"
    checkout develop
    merge hotfix/fix-bug tag: "Hotfix backported"

3. Git-flowの使い方

Git-flowを使用するには、git-flow をインストールするか、手動でブランチ管理を行う方法があります。
ここでは git-flow コマンドを利用した流れを解説します。

1. Git-flowの初期化

まず、Gitリポジトリを作成し、git-flow を初期化します。

git init
git flow init

初期化時に、デフォルトのブランチ (main, develop) が作成されます。

2. 新機能の開発 (featureブランチ)

新しい機能を開発する際は、feature ブランチを作成します。

git flow feature start new-feature

開発が完了したら、develop に統合します。

git flow feature finish new-feature

3. リリース準備 (releaseブランチ)

リリース準備ができたら、release ブランチを作成します。

git flow release start v1.0

テストが完了し、リリースする際は main に統合し、タグを付けます。

git flow release finish v1.0

4. 緊急修正 (hotfixブランチ)

本番環境 (main) にバグが発生した場合、hotfix ブランチを作成し修正します。

git flow hotfix start fix-bug

修正後、main および develop に統合します。

git flow hotfix finish fix-bug

4. Git-flowを使うメリット・デメリット

メリット

✅ チーム開発がスムーズに進む
✅ 安定したコード管理が可能
✅ 並行開発がしやすい

デメリット

⚠ 小規模プロジェクトにはオーバーヘッドが大きい
⚠ 必ずしもすべてのプロジェクトに適しているわけではない


5. まとめ

Git-flowは、中規模以上のプロジェクトで特に有効なブランチ戦略です。
しかし、小規模プロジェクトではシンプルなワークフロー (GitHub FlowGitLab Flow) のほうが適している場合もあります。
適切なブランチ戦略を選択し、効率的な開発を目指しましょう。

次に読むべき記事

参考文献