GitHubリポジトリの運用方針
GitHubフローをアレンジしたもの。ここではWebアプリを想定しているが、他のシステム形態にも適用できるかも。
ブランチ戦略
- main
- defaultブランチ。基本的にリリースタグはここから打つ。
- ブランチ保護対象。
Settings
->Branches
->Add branch protection rule
から設定。
- release/xxx
- ブランチ保護対象。
- 特定のコミットをリリースに反映したいときに作成。リリースタグをここから打つ。
- 特定のコミットは他のブランチからcherry pick。
- feature/xxx
- 作業用。
- 基本的にPRはここから作成。mainブランチに
Squash and merge
。
- hotfix/xxx
- すぐに本番環境に反映したい機能修正。
- topic/xxx
- 大規模な機能追加をするときに作成。
- 小さな単位毎にfeatureブランチを作成。featureブランチからtopicブランチにPRを出して
Squash and merge
。 - いざリリースする際はmainブランチに
Create a merge commit
(理由は後述)。
PRマージはSquash and merge
をデフォルトにする
Settings
->General
->Pull Requests
から設定。- コミット単位やコミットメッセージに気を使う必要がなくなる。
- 注意点とかはソースコード中にコメントとして残しておきたい派。
- ただし、topicブランチをmainブランチにマージする際は
Create a merge commit
にする。Squash and merge
のままだと、分散させたfeatureブランチごとのマージメッセージがひとまとめにされちゃう。
PRマージメッセージはPRタイトルをデフォルトにする
Settings
->General
->Pull Requests
から設定。- 細かくなりがちなコミットメッセージは適当でよいが、PRタイトルは丁寧にする。
- 外部のIssue管理ツールを使用している場合は自動リンク設定をしてPRタイトルにIssue番号を付与すると尚良し。
- ただし、有料プラン限定。