ブランチモデルの採用
iOSアプリ開発をしていてブランチ運用について曖昧だったので、調べました。
私の場合、以下の理由で基本的にgit-flowを採用することにしました。
調べた限りモバイルアプリではgit-flowの採用が多いので、現場が変わっても馴染みやすい。
モバイルアプリではWebに比べてリリースサイクルが長い。
Git Flow
git-flowについては以下の記事で紹介されています。
2010年、オランダのエンジニアVincent Driessenさんの一提案に過ぎなかったgitのブランチモデル A successful Git branching model はその後、世界中に広く浸透し今やgit運用モデルとしてデファクトスタンダードになりました。
なおgit-flowはツールとモデル両方の名称として使われるようですが、ここでは後者の意味で取り扱います。
git-flowには以下のブランチがあります。
master
リリースの状態。リリースごとにタグを打つ。develop
開発ブランチ。release
リリース準備が整ったらdevelopからチェックアウトする。
リリースが完了したらmaster、develop両方にマージする。feature
機能ごとの作業ブランチ。developにマージする。hotfix
masterからチェックアウト。リリース版の緊急修正。
その他のブランチモデル
Git-Flow
Github Flow
Gitlab Flow
GitFeatureFlow
Webではリリースサイクルが短いため、git-flowを簡略化したGithub-Flowなどが採用されているようです。