【ぎっとはぶふろー】

GitHub Flow とは?

💡 ブランチを切って、レビューして、マージ——これだけで回る開発フロー
📌 このページのポイント
GitHub Flow main feature ① ブランチ作成 ② コミット PR レビュー ⑤ マージ デプロイ ブランチ作成 → コミット → PR → レビュー → マージ → デプロイ mainは常にデプロイ可能な状態を保つ
GitHub Flowのイメージ
ひよこ ひよこ

GitHub Flowって何なの?GitFlowと名前が似ているけど違うの?

ペンギン先生 ペンギン先生

どちらもGitブランチの使い方を決めたルールだけど、GitHub Flowはずっとシンプルだよ。GitFlowがdevelop・release・hotfixなどたくさんのブランチを使うのに対して、GitHub Flowはmainと機能ブランチの2種類だけで回すんだ。

ひよこ ひよこ

たった2種類で大丈夫なの?

ペンギン先生 ペンギン先生

大丈夫だよ。流れはこうだ。まずmainからブランチを作る、そこで作業してコミットする、プルリクエストを出す、チームにレビューしてもらう、OKならmainにマージしてデプロイ。これだけ!

ひよこ ひよこ

mainブランチはいつでもデプロイできる状態なんだね!

ペンギン先生 ペンギン先生

そう、それがGitHub Flowの一番大事なルール。mainは常にデプロイ可能な状態を保つ。だからmainに直接コミットせず、必ずプルリクエスト経由でマージするんだよ。

ひよこ ひよこ

どんなチームに向いているの?

ペンギン先生 ペンギン先生

Webサービスのように頻繁にデプロイするチームにぴったりだよ。1日に何回もデプロイするようなチームだと、GitFlowのような複雑なルールは逆に足かせになる。GitHub Flowならサイクルが速くて回しやすいんだ。

ひよこ ひよこ

CI/CDとも相性がいいの?

ペンギン先生 ペンギン先生

抜群にいいよ。プルリクエストを出した時点で自動テストが走り、マージしたら自動デプロイという流れが自然に組める。GitHub Actionsと組み合わせれば、コードを書く以外はほぼ自動化できるね。

ひよこ ひよこ

GitHub Flowが合わないケースってあるの?

ペンギン先生 ペンギン先生

複数バージョンを同時にサポートする必要があるソフトウェア(モバイルアプリやパッケージ製品)には向かないね。v1.0のバグ修正をしながらv2.0を開発する、みたいな場合はGitFlowの方が管理しやすい。シンプルさが強みでもあり、限界でもあるんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
GitHub Flow」って出てきたら「mainから枝を出してPRでレビューしてマージする、シンプルなGitの使い方」と思えればだいたいOK!
📖 おまけ:英語の意味
「GitHub Flow」 = GitHub流の開発フロー
💬 GitHubのエンジニアScott Chaconが2011年に提唱した、GitFlowよりシンプルなワークフローだよ
← 用語集にもどる