Gitのブランチモデル「git-flow」について調べてみた。
git-flowとは
Vincent Driessen氏が提唱した「A successful Git branching model」というブランチモデルをサポートするツールのこと。
git-flowでは、役割の決められた5つのブランチを切り替えながら開発を行う。
ブランチ管理にルールを設けることで、不用意なマージなどの問題を避けることができる。
git-flowのメリット
git-flowのメリットとして、以下の4つが挙げられてた。
・本番リリースしたデータと、製作中のデータの区別が明確になる。
・修正、リリース、機能追加などのいくつもの種類の違う作業を並行して進められる。
・リリースした内容の調査が簡単になる。
・git-flow用のコマンドでほとんど管理が行えるので、操作マニュアルを用意しやすい。
5つのブランチの役割
git-flowでは開発の内容によってブランチの切り替え行う。その5つのブランチの役割について紹介する。
■ メインブランチ
メインブランチは直接作業やコミットすることはなく、マージを行うだけのブランチ。
・masterブランチ
安定して動作し、常にリリース可能な状態のブランチ。
・developブランチ
開発の中心となるブランチで、最新の開発作業の変更を常に反映させている。
developブランチのコードが安定し、リリース準備ができたらdevelopブランチの変更をmasterブランチへマージする。
■ サポートブランチ
タスクごとにサポートブランチを作成し、作業を行う。
ブランチはメインブランチから作成され、マージ後に削除する。
・ featureブランチ
開発を行うためのブランチで、新しい機能の追加や変更、バグの修正を行う。
developブランチから分岐して、developブランチにマージされる。
・ releaseブランチ
リリースをする段階になった時点で使用するブランチ。
developブランチから分岐して、developブランチとmasterブランチにマージされる。
・ hot-fixブランチ
masterブランチ内で重大なバグが見つかった場合は、hot-fixブランチをmasterブランチから切って修正を行う。修正が完了したら、リリース作業もこのブランチで行い、developブランチとmasterブランチにマージする。