プロジェクト

全般

プロフィール

アクセス:0 | 管 理人 2025-07-31に更新.

Git運用ルール

ブランチ構成と役割

種別 形式例 説明 対応環境 備考
feature feature/-<簡潔な説明> 新機能の実装 個別ブランチ -
bugfix bugfix/-<簡潔な説明> バグ修正(軽微なもの) 個別ブランチ -
hotfix hotfix/-<簡潔な説明> 緊急性の高い修正(本番起因) 個別ブランチ mainから派生
release release/<バージョン> リリース準備用ブランチ 任意運用(使わない場合もある) -
experiment experiment/-<技術検証内容> 技術検証・PoC 個別ブランチ -
refactor refactor/-<対象モジュール名> リファクタリング 個別ブランチ -
docs docs/-<対象ドキュメント> ドキュメント変更 個別ブランチ -
test test/-<テスト対象> テスト作成・修正 個別ブランチ -
chore chore/-<メンテ内容> ビルド設定やCI修正などの雑用的作業 個別ブランチ -
develop develop 機能開発・技術的負債対応の統合先 開発統合環境 -
staging staging リリース前の検証・確認用 確認環境 -
main main 本番用ブランチ 本番環境 緊急修正以外で直接変更しない

ブランチ作成ルール

✅ 機能開発/技術的負債解消

ベースブランチ:develop

  • 新機能・技術的負債の対応
    • develop ブランチから feature/<Redmineチケット番号>-<概要> を切る

ベースブランチ:main

  • バグ修正(インシデント/アクシデント)
    • main ブランチから hotfix/<Redmineチケット番号>-<概要> を切る

Redmineチケット連携ルール

Redmineチケットが #1234 の場合

  • feature/1234-add-login-api
  • bugfix/1234-fix-session-expiry
  • hotfix/1234-remove-debug-log

マージポリシーとCI

マージ元 マージ先 方法 CI要件 レビュー要件
feature/* develop squash merge ✅ lint / unit test ✅ 開発者2名以上 + Owner
develop staging merge commit ✅ lint / unit test ✅ 開発者 + Owner
staging main merge commit ✅ lint / unit test ✅ Owner (リリース責任者)
hotfix/* main squash merge ✅ lint / unit test ✅ Owner
hotfix/* staging cherry-pick 任意
hotfix/* develop cherry-pick 任意

プッシュ制限ルール

  • main, staging, develop ブランチへの 直接プッシュは禁止
    • GitHub/GitLab 上の「保護されたブランチ(Protected Branch)」設定を必須とする
    • 例:
    • 「強制プッシュの禁止」
    • 「マージにはレビューとCI成功が必要」
    • 「管理者以外の直接プッシュを無効化」

デプロイと環境の対応

ブランチ 対応環境 デプロイタイミング
develop 開発環境 任意タイミング(自動 or 手動)
staging 確認環境 1スプリント終了時/機能結合後
main 本番環境 リリース承認後

補足

  • リリース時にはmainにタグを付与(例: v1.2.3
  • release/xxx ブランチの運用が必要な場合は、別途ルール定義(現時点では省略)

デプロイフロー

添付の内容

ファイル名 用途
PULL_REQUEST_TEMPLATE.md PR作成時のテンプレート(レビュー項目付き)
commitlint.config.js commitlint 設定ファイル(Conventional Commit + ルール強制)
prepare-commit-msg Git Hook: ブランチ名から Redmine 番号を commit message に自動挿入
deploy_flow.puml PlantUML形式のデプロイフロー図