Gitを利用したプロジェクトでは、スムーズに進行ができるようブランチ運用のルールをあらかじめ決めておく必要があります。しかし、Gitの経験が少ないと「どのように運用ルールを決めればいいかわからない」と思われる方も多いのではないでしょうか?
そこで本記事ではGitの運用ルールとして有名なGitFlowとGitHubFlowの概要と特徴についてお伝えしていきたいと思います。
【公式HP】https://flxy.jp/
- 90%以上がフルリモート案件
- 週1〜3日程度の副業向け案件が多い
- 自身のライフスタイルに合った働き方ができる
- 希望に合わせてコーディネーターが最適な提案をしてくれる
- 定期開催される交流会や勉強会で人脈を広げることができる
\ 最短60秒で登録可能! /
目次
【ブランチ運用】Git Flowの概要と特徴について
GitFlowは主に機能ごとにブランチを使い分けて開発を進めていくスタイルです。GitFlowで利用するブランチの種類とそれぞれの意味をまとめた表が以下になります。
master | 直接の作業はせずリリースするためのブランチ。 |
---|---|
hotfix | リリース後にバグがあった場合の修正用ブランチ。 |
release | リリース前のテスト用ブランチ。 |
develop | 開発用ブランチ。実際の作業は機能ごとにfeatureブランチで行う。 |
feature | 機能開発用ブランチ。 |
実際に作業をするのは、featureブランチとreleaseブランチ、hotfixブランチ上です。
はい・・・言葉での説明だけでは理解しづらいかと思いますので、GitFlowでの運用の流れを図で表したものを以下に載せておきます。
繰り返しになりますが、あくまで作業をするのはfeatureブランチとreleaseブランチ、hotfixブランチで、masterブランチとdevelopブランチでは実際の作業は行いません。
また、これまで解説してきたような細かな運用ルールから、GitFlowは開発を主軸とした運用に適していると言えるでしょう。
【ブランチ運用】GitHub Flowの概要と特徴について
GitHubFlowでは運用するブランチは主にmasterとtopicの2種類のみでGitFlowをある意味では簡略した運用方式とも言えるでしょう。
本章では先にGitHubFlowでの運用の流れを図で表したものを以下に載せておきます。
GitHubFlowで利用するブランチの種類とそれぞれの意味をまとめた表が以下。
master | リリース用ブランチ。 |
---|---|
topic | 開発用ブランチ。機能ごとにブランチを分けて利用する。 |
GitFlowと比べてGitHubFlowでは運用するブランチが2種類と少ない分、運用時に注意すべきポイントがいくつか存在します。
- masterブランチは常にリリース可能な状態にしておく。
- topicブランチは必ずmasterブランチから作成する。
- ローカルブランチの内容を定期的にリモートにPushする。
- プルリクエストを使ってコードレビューを行うことで品質を担保する。
GitHubFlowでは、topicブランチで修正・開発された機能が直接masterブランチにマージされ、その後リリースされるという流れなので、topicブランチでの不具合がそのまま公開されてしまうといった事態に陥る可能性があります。
そのような事態の予防としてプルリクエストを使ってコードレビューを行うという訳です。
GitHubFlowは、簡略的なブランチ運用とプルリクエストによるコードレビューで品質を担保するという性質上、リリースに主眼を置いた運用に適していると言えるでしょう。
結局、Git FlowとGitHub Flowどちらのブランチ運用がおすすめ?
ここまでGitFlow・GitHubFlowそれぞれの概要と特徴についてお伝えしてきました。
・・・で、結局どちらで運用すればいいの!?と思われている方向けに、本章では一般的な運用ケースをお伝えしていきたいと思います。
GitFlowが使われる主なケース
GitFlowでは利用するブランチの種類が多いため、運用が複雑になることが予想されます。
これは裏を返せば運用ルールが徹底されているとも捉えられることから、GitFlowは大規模プロジェクトでの運用に向いていると言えるでしょう。
また、GitFlowは開発に主眼を置いた運用に適していると先にお伝えした通り、開発フェーズ時のみ利用するのも良いかと思います。
GitHubFlowが使われる主なケース
一方のGitHubFlowはブランチ運用ルールが簡略化されていることから大規模プロジェクトには向いていないと言えるでしょう。
ただし、小・中規模のプロジェクトであれば運用がラクで便利なことからGitHubFlowが採用されているケースが多いように思えます。
また、GitHubFlowはリリースに主眼を置いた運用に適していると先にお伝えした通り、運用フェーズ時のみ利用するのも良いでしょう。
いずれの運用ルールを適用するにせよチーム内でコミュニケーションをしっかりと取り、各自が使いやすいようルール設計することが大切です。
Gitのブランチ運用【まとめ】
- GitFlowは開発を主軸とした運用に適している。また、大規模プロジェクトに適した運用ルールと言える。
- GitHubFlowはリリースを主軸とした運用に適している。また、小・中規模プロジェクトに適した運用ルールと言える。
- いずれの運用ルールを適用するにせよチーム内でコミュニケーションをしっかりと取り、各自が使いやすいようルール設計することが大切。
ここまで記事を読んでいただきありがとうございました。本記事がGitのブランチ運用に悩まれている方のお役に立てたのなら幸いです。
また、Git自体の学習方法については以下の記事で詳しく解説しておりますので、気になる方はこちらもご参照くださいませ。
- 90%以上がフルリモート案件
- 週1〜3日程度の副業向け案件が多い
- 自身のライフスタイルに合った働き方ができる
- 希望に合わせてコーディネーターが最適な提案をしてくれる
- 定期開催される交流会や勉強会で人脈を広げることができる
\ 最短60秒で登録可能! /