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 Flow
や GitLab Flow
) のほうが適している場合もあります。
適切なブランチ戦略を選択し、効率的な開発を目指しましょう。