【Git】推奨されているブランチの分け方まとめ

ブランチの分け方にはいくつかの推奨されている方法があります。
ここでは 1 つの中央リポジトリーを中心とした制作で
主に推奨されているブランチの分け方を紹介します。
各方法ごとに向いている制作を挙げていますので、
制作内容によって使い分けることをおすすめします。

Linux 知識の要らない Git 講座 目次にもどる

GitHub flow

GitHub が推奨しているブランチの分け方です。
↓公式のドキュメントはこちらです。
Understanding the GitHub flow · GitHub Guides

ブランチの分け方だけでなく、
編集内容の確認プロセスまで定義されているのが特徴です。

GitHub flow
GitHub flow
向いている制作
  • 制作物の公開前の確認に時間的・金銭的コストがかからない場合
  • 制作物の公開前の確認の時間的・金銭的コストを解決できる場合
  • feature ブランチを一度に複数作らない場合
長所
  • 他の方式よりもブランチの分け方がシンプルです
短所
  • 編集内容の確認を feature ブランチごとに行うため、
    確認に時間的・金銭的コストがかかる場合、向きません

Git flow (A Successful Git Branch Model)

GitPrime 社の元 CTO の Vincent Driessen さんが
2010 年に自身のブログで発表した 「A Successful Git Branch Model」で
推奨されているブランチの分け方です。

夜間に自動的にテストを行う必要があるほどに
大規模であったり、もしくは品質を重視したプログラム開発を
想定した方法です。
また、ブランチの分け方だけでなく
プログラムのバージョンの決め方についても述べられています。

Git flow
Git flow
向いている制作
  • 夜間の自動テストなどを利用して
    複数の製作者の編集内容をまとめて確認することで
    制作物の公開前の確認工程にかかる時間的・金銭的コストを
    圧縮できる場合
  • 各 feature ブランチの製作速度に大きな差がない場合
長所
  • 夜間の自動テストで多数の feature ブランチの確認を一度に実施できます
短所
  • feature ブランチごとの製作速度や規模に差があっても、
    最も制作の遅い feature ブランチの完成を待たないと
    先に完成した feature ブランチをリリースできません
  • 先にリリースするべき feature ブランチが完成するまで
    その次にリリースする予定の feature ブランチは
    夜間の自動テストを利用できません
  • 共同制作者が増えると全ての feature ブランチがテストを通過することが減っていき、リリースのフェーズに入るのが難しくなります

拡張 Git flow (Git Feature flow)

Git flow の問題点を解決するため 筆者が Git flow を独自に拡張した方式で
4年以上の運用実績があります。
また、ぐるなびさんが Git Feature flow と命名して
ほぼ同様のブランチの分け方を採用しているようで、
テストを厳密に行い、ブランチごとの制作の速度や規模に差がある場合、
このブランチの分け方に行き着くものと思われます。

↓詳しくはこちらの記事ご覧ください。
拡張 Git flow (Git Feature flow)

拡張 Git flow
拡張 Git flow
向いている制作
  • 夜間の自動テストなどを利用して
    複数の製作者の編集内容をまとめて確認することで
    制作物の公開前の確認工程にかかる時間的・金銭的コストを
    圧縮できる場合
  • 各 feature ブランチの製作速度に大きな差がある場合
長所
  • 夜間の自動テストで多数の feature ブランチの確認を一度に実施できます
  • すべての feature ブランチがいつでも夜間の自動テストを利用できます
  • 各 feature ブランチの製作速度に大きな差があっても
    完成した feature ブランチからリリース準備に入ることができます
短所
  • feature ブランチを develop ブランチと release ブランチに
    1 回ずつマージする必要があります

Linux 知識の要らない Git 講座 目次にもどる

タイトルとURLをコピーしました