Practical Guide
コマンドで学ぶ
実践ワークフロー
実際の開発シナリオに沿って、Git Flow の各ステップを 具体的なコマンドとともに解説します。
// 01 Feature Development
新機能の開発
1
feature ブランチを作成
develop ブランチから新しい feature ブランチを切ります。ブランチ名は機能を端的に表す名前にします。
terminal
# develop ブランチを最新に
git checkout develop
git pull origin develop
# feature ブランチを作成
git checkout -b feature/user-auth develop
2
機能を実装 & コミット
通常どおり開発を進め、こまめにコミットします。コミットメッセージは明確に。
terminal
# 変更をステージング & コミット
git add src/auth/
git commit -m "feat: ログイン認証機能を実装"
# リモートにプッシュ (バックアップ & レビュー用)
git push -u origin feature/user-auth
3
develop にマージ
機能が完成したら、develop にマージして feature ブランチを削除します。--no-ff でマージコミットを残すのが Git Flow の流儀です。
terminal
git checkout develop
git merge --no-ff feature/user-auth -m "feat: ユーザー認証機能を統合"
git push origin develop
# feature ブランチを削除
git branch -d feature/user-auth
git push origin --delete feature/user-auth
// 02 Release
リリース準備
4
release ブランチを作成
リリースに含める機能が develop に揃ったら、release ブランチを作成します。この時点で develop は次期リリースの開発を再開できます。
terminal
git checkout -b release/1.0.0 develop
# バージョン番号を更新
git commit -am "chore: bump version to 1.0.0"
5
QA & バグ修正
release ブランチ上でテストを行い、見つかったバグはここで修正します。新機能の追加は禁止。バグ修正・ドキュメント・バージョン番号の調整のみ。
terminal
# リリース用のバグ修正
git commit -am "fix: バリデーションエラーのメッセージを修正"
6
main と develop にマージ
リリース準備が完了したら、main と develop の両方にマージし、main にバージョンタグを付けます。
terminal
# main にマージ & タグ付け
git checkout main
git merge --no-ff release/1.0.0 -m "release: v1.0.0"
git tag -a v1.0.0 -m "Version 1.0.0"
# develop にもマージ (リリース中の修正を反映)
git checkout develop
git merge --no-ff release/1.0.0 -m "chore: merge release/1.0.0 back to develop"
# リモートにプッシュ
git push origin main develop --tags
# release ブランチを削除
git branch -d release/1.0.0
git push origin --delete release/1.0.0
// 03 Hotfix
緊急バグ修正
7
hotfix ブランチを作成
本番環境で緊急のバグが見つかった場合、main から直接 hotfix ブランチを切ります。
terminal
git checkout -b hotfix/fix-login-crash main
# バグを修正
git commit -am "fix: ログインクラッシュを修正"
8
main と develop にマージ
修正を main と develop の両方に反映し、パッチバージョンのタグを付けます。
terminal
# main にマージ & タグ
git checkout main
git merge --no-ff hotfix/fix-login-crash -m "hotfix: v1.0.1"
git tag -a v1.0.1 -m "Hotfix: ログインクラッシュ修正"
# develop にもマージ
git checkout develop
git merge --no-ff hotfix/fix-login-crash -m "hotfix: merge login crash fix"
# プッシュ & クリーンアップ
git push origin main develop --tags
git branch -d hotfix/fix-login-crash
git push origin --delete hotfix/fix-login-crash
// Bonus: git-flow CLI
git-flow コマンドで簡略化
git-flow extension
git-flow
拡張を使えば、上記のワークフローをシンプルなコマンドで実行できます。
初期化
git flow init
feature
git flow feature start user-auth
git flow feature finish user-auth
release
git flow release start 1.0.0
git flow release finish 1.0.0
hotfix
git flow hotfix start fix-crash
git flow hotfix finish fix-crash
Quick Reference
🟠
main
本番環境の真実
🔵
develop
開発の統合地点
🟢
feature
新しい機能
🟣
release
出荷の準備
🔴
hotfix
緊急修正