ここでは Git を前提とし、ブランチ戦略を以下のように定義します。
<aside> 💡 効率的な Git ワークフローを構築するための ブランチの命名規則や作成・マージなどの運用ルール
</aside>
モバイルアプリ開発におけるブランチ戦略は Git flow
が選択されることが多いかと思います。
しかし、開発する人数が増えるに従って Git flow
では非効率になってしまいました。
例えば、リリースしてから不具合が発覚した場合 hotfix
ブランチを運用する必要があります。
hotfix
ブランチは develop
ブランチへのバックマージが必要となりますが、その運用の手間を嫌って hotfix
が発生しないように develop
ブランチへのマージを2,3日控えるという運用になっていました。開発する人数が増えるに従って、その間に溜まる PR が増えてしまっていました。
また、開発する人数が増えるに従って、直近のリリースだけでなく、その次のバージョンの開発も同時並行に進むようになり、 develop
ブランチだけでは管理しきれなくなりました。
develop-**
ブランチを作成していますが、 develop
ブランチへの追従やコンフリクト解消などが手間となっています。
上記の理由から、ブランチ戦略の見直し・検討・設計を行いました。
ブランチ戦略には Git flow, GitHub flow, GitLab flow などがありますが、どんなブランチ戦略を採用するかを検討するために観点を洗い出しました。
モバイルアプリではサポートするバージョンが1つしかありません。そのため、ブランチもリリースに対応するブランチがあればリリースされたバージョンの履歴がわかりやすくて良さそうです。
リリースバージョンに対応するブランチがあると、不具合調査で git bisect
しやすそうです。