アクセス: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形式のデプロイフロー図 |