開発効率化ツール

【Git】ブランチ運用ルールの代表例GitFlowとGitHubFlowを紹介

Git運用ルール

Gitを利用したプロジェクトでは、スムーズに進行ができるようブランチの”運用ルール“をあらかじめ決めておく必要があります。

しかしGitの経験が少ないと「どのように運用ルールを決めればいいかわからない」と思われる方も多いのではないでしょうか?

そこで本記事ではGitの運用ルールとして有名な”GitFlow“と”GitHubFlow“の概要と特徴についてお伝えしていきたいと思います。

ハニ太郎
ハニ太郎
それでは早速GitFlowとGitHubFlowの紹介に移っていきましょう♪

Git Flowの概要と特徴

GitFlow“は主に機能ごとにブランチを使い分けて開発を進めていくスタイルです。

GitFlowで利用するブランチの種類とそれぞれの意味をまとめた表が以下になります。

master直接の作業はせずリリースするためのブランチ。
hotfixリリース後にバグがあった場合の修正用ブランチ。
releaseリリース前のテスト用ブランチ。
develop開発用ブランチ。実際の作業は機能ごとにfeatureブランチで行う。
feature機能開発用ブランチ。

実際に作業をするのは、featureブランチとreleaseブランチ、hotfixブランチ上です。

masterブランチとdevelopブランチでは実際の作業は行いません。

はい・・・言葉での説明だけでは理解しづらいかと思いますので、GitFlowでの運用の流れを図で表したものを以下に載せておきます。

GitFlow

繰り返しになりますが、あくまで作業をするのはfeatureブランチとreleaseブランチ、hotfixブランチで、masterブランチとdevelopブランチでは実際の作業は行いません。

また、これまで解説してきたような細かな運用ルールから、GitFlowは開発を主軸とした運用に適していると言えるでしょう。

GitHub Flowの概要と特徴

GitHubFlow“では運用するブランチは主にmasterとtopicの2種類のみでGitFlowをある意味では簡略した運用方式とも言えるでしょう。

本章では先にGitHubFlowでの運用の流れを図で表したものを以下に載せておきます。

GitHubFlow

GitHubFlowで利用するブランチの種類とそれぞれの意味をまとめた表が以下。

masterリリース用ブランチ。
topic開発用ブランチ。機能ごとにブランチを分けて利用する。

GitFlowと比べてGitHubFlowでは運用するブランチが2種類と少ない分、運用時に注意すべきポイントがいくつか存在します。

  1. masterブランチは常にリリース可能な状態にしておく。
  2. topicブランチは必ずmasterブランチから作成する。
  3. ローカルブランチの内容を定期的にリモートにPushする。
  4. プルリクエストを使ってコードレビューを行うことで品質を担保する。

GitHubFlowでは、topicブランチで修正・開発された機能が直接masterブランチにマージされ、その後リリースされるという流れなので、topicブランチでの不具合がそのまま公開されてしまうといった事態に陥る可能性があります。

そのような事態の予防としてプルリクエストを使ってコードレビューを行うという訳です。

GitHubFlowは、簡略的なブランチ運用とプルリクエストによるコードレビューで品質を担保するという性質上、リリースに主眼を置いた運用に適していると言えるでしょう。

結局、Git FlowとGitHub Flowどちらがおすすめなの?

Git運用ルール

ここまでGitFlow・GitHubFlowそれぞれの概要と特徴についてお伝えしてきました。

・・・で、結局どちらで運用すればいいの!?と思われている方向けに、本章では一般的な運用ケースをお伝えしていきたいと思います。

GitFlowが使われる主なケース

GitFlowでは利用するブランチの種類が多いため、運用が複雑になることが予想されます。

これは裏を返せば運用ルールが徹底されているとも捉えられることから、GitFlowは大規模プロジェクトでの運用に向いていると言えるでしょう。

また、GitFlowは開発に主眼を置いた運用に適していると先にお伝えした通り、開発フェーズ時のみ利用するのも良いかと思います。

GitHubFlowが使われる主なケース

一方のGitHubFlowはブランチ運用ルールが簡略化されていることから大規模プロジェクトには向いていないと言えるでしょう。

ただし、小・中規模のプロジェクトであれば運用がラクで便利なことからGitHubFlowが採用されているケースが多いように思えます。

また、GitHubFlowはリリースに主眼を置いた運用に適していると先にお伝えした通り、運用フェーズ時のみ利用するのも良いでしょう。

いずれの運用ルールを適用するにせよチーム内でコミュニケーションをしっかりと取り、各自が使いやすいようルール設計することが大切です。

Git運用ルール【まとめ】

Git運用ルールまとめ
  • GitFlowは開発を主軸とした運用に適している。また、大規模プロジェクトに適した運用ルールと言える。
  • GitHubFlowはリリースを主軸とした運用に適している。また、小・中規模プロジェクトに適した運用ルールと言える。
  • いずれの運用ルールを適用するにせよチーム内でコミュニケーションをしっかりと取り、各自が使いやすいようルール設計することが大切。
ハニ太郎
ハニ太郎
ここまで記事を読んでいただきありがとうございました♪

本記事がGitの運用ルールに悩まれている方のお役に少しでも立てたのなら幸いです。

また、Git自体の学習方法については以下の記事で詳しく解説しておりますので、気になる方はこちらもご参照くださいませ。

Git&GitHubの学習方法を初心者向けにまとめてみた
【保存版】Git&GitHubの学習方法を初心者向けにまとめてみた「Git&GitHubの効率的な学習方法がわからない」そんな初心者の方向けに現役エンジニアの筆者が考えるおすすめの学習方法を解説しております。これからGit&GitHubの学習を始める方は必見です。...
こちらの記事もおすすめ!

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です