コンテンツにスキップ

05.ブランチ規定

このドキュメントでは、Gitのブランチ戦略と、各ブランチの命名規則および運用ルールについて定めます。 一貫したブランチ戦略は、複数人での並行開発を可能にし、変更履歴の追跡を容易にします。


1. ブランチ戦略の全体像

本プロジェクトでは、シンプルで柔軟な GitHub Flow をベースとし、緊急のバグ修正に対応するためのHotfixフローを組み合わせた戦略を採用します。

---
config:
  theme: 'default'
  themeVariables:
      'git0': '#b60205'
      'git1': '#00ff00'
      'git2': '#a2eeef'
      'git3': '#d73a4a'
      'git4': '#a2eeef'
      'git5': '#ffff00'
      'git6': '#ff00ff'
      'git7': '#00ffff'
  gitGraph:
    showBranches: true
    showCommitLabel: true
    mainBranchOrder: 1
---
gitGraph
    commit id: "v1.0" tag:"v1.0.0"
    branch feat/add-profile order: 2
    checkout feat/add-profile
    commit
    commit
    checkout main
    merge feat/add-profile id: "PR #12"

    branch fix/login-bug order: 2
    checkout fix/login-bug
    commit
    checkout main
    merge fix/login-bug id: "PR #13"

    commit id: "v1.1" tag:"v1.1.0"

    branch feat/new-feature order: 2
    checkout feat/new-feature
    commit
    commit

    checkout main
    branch hotfix/critical-issue
    checkout hotfix/critical-issue
    commit id: "緊急修正"

    checkout main
    merge hotfix/critical-issue id: "PR #14"
    commit id: "v1.1.1" tag:"v1.1.1"

    checkout feat/new-feature
    commit id: "進行中"
  • 全ての開発は、mainブランチから作成された作業ブランチfeat/, fix/など)で行われます。
  • 作業が完了したブランチは、プルリクエストを通じてmainブランチにマージされます。
  • 緊急性の高いバグ修正は、hotfix/ブランチを使って、計画外のリリースを行います。

2. ブランチの種類と命名規則

2.1. main ブランチ

  • 役割: 常に安定し、リリース可能な状態を保つ、プロジェクトの主軸となるブランチ。
  • 運用: 直接のプッシュは禁止。全ての変更はプルリクエスト経由で行います。

2.2. 作業ブランチ

作業の種類に応じて、以下のプレフィックスを付けたブランチを作成します。 ブランチのプレフィックスは、対応するIssueやPRに付与される Type: ラベルと連動します。

ブランチプレフィックス 対応するラベル (Type:) 目的 命名規則例
feat/ Feature(機能) 新機能の追加・拡張 feat/12-add-login-function
fix/ Bug(不具合) 通常のバグ修正 fix/42-resolve-display-error
refactor/ Refact(改善) リファクタリング、既存機能の改善 refactor/61-optimize-query
docs/ Doc(ドキュメント) ドキュメントの作成・修正 docs/92-update-api-spec
chore/ Chore(設定) ビルド設定、CI改善などの雑務 chore/101-update-ci-settings

2.3. ホットフィックスブランチ (hotfix/)

  • 目的: Priority: Critical🔥と判断されたバグに、緊急で対応するための専用ブランチです。
  • 対応ラベル: Type: Bug(不具合)
  • 運用フロー:
    1. 最新のmainブランチ(または安定版を示すGitタグ)から、hotfix/[Issue番号]-[概要]という名前でブランチを作成します。
    2. 修正作業を行い、コミットします。
    3. mainブランチへのプルリクエストを作成し、レビューを経て最優先でSquash and mergeします。
    4. マージ後、mainブランチに新しいパッチバージョン(例: v1.1.1)のGitタグを打ち、即座にリリースを行います。

3. コミットメッセージの指針

  • プレフィックスの活用: コミットメッセージのタイトルには、Conventional Commitsに準じたプレフィックス(feat:, fix:, docs:など)を付けることを推奨します。
  • 関連Issueの記述: 本文にCloses #[Issue番号]を記述することで、PRがマージされた際に自動でIssueをクローズできます。