muapps

iOSアプリ開発で得られた知見をメモ代わりに投稿します。

ブランチモデルについて

ブランチモデルの採用

iOSアプリ開発をしていてブランチ運用について曖昧だったので、調べました。

私の場合、以下の理由で基本的にgit-flowを採用することにしました。

  • 調べた限りモバイルアプリではgit-flowの採用が多いので、現場が変わっても馴染みやすい。

  • モバイルアプリではWebに比べてリリースサイクルが長い。  

Git Flow

git-flowについては以下の記事で紹介されています。

2010年、オランダのエンジニアVincent Driessenさんの一提案に過ぎなかったgitのブランチモデル A successful Git branching model はその後、世界中に広く浸透し今やgit運用モデルとしてデファクトスタンダードになりました。

qiita.com

なお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などが採用されているようです。