Gitコマンド虎の巻

Git-flowモデル

Git-fowモデルは、Gitを運用していく上での運用ルールの一つで、現在多くのプロジェクトで採用されている一般的なモデルです。

Gitではブランチを切って自由に開発を行うことができるので プロジェクト内で自由にルールを決めて運用することができます。

しかし、プロジェクトごとに運用ルールが異なるとプロジェクトが変わるごとに 違うルールで開発することになりとても混乱します。

そこでこうした問題を解決するために共通のブランチ運用モデルがあり、 現在主流なモデルとして「git-flow」というモデルがあります。

git-flowモデルで使用するブランチ

git-flowモデルでは、masterdevelopfeaturereleasehotfixsupportの6種類のブランチを使用します。 このうちmaster、develop、featureブランチは必須です。

masterブランチ

本番環境へリリース可能なモジュールのみを格納するブランチです。

いつでもリリースが可能な状態を保つことが重要で、テストが済んでいないモジュールは絶対に格納してはなりません。

masterブランチへ直接コミットは絶対に行わず、必ずdevelopブランチからマージにて更新を行います。masterブランチはGitリポジトリを作成するとデフォルトで作成されます。

developブランチ

開発・結合テストを行うためのブランチで、masterブランチから派生させて作成します。

developブランチへ直接コミットは基本的に行わず、必ずfeatureブランチからマージにて更新します。

feature/xxxブランチ

developブランチから派生したブランチで、開発を行うためのブランチです。

基本的に機能ごとにfeatureブランチを切って、当ブランチ上で開発を行います。

単体テストが完了したら、developブランチにマージを行います。

xxxの箇所はプロジェクト内で決めた命名規則に従い開発者が命名します。developへマージ後は当ブランチは削除します。

hotfix/xxxブランチ

masterブランチから派生したブランチで、本番運用時に見つかったバグなどを緊急対応するためのブランチです。

対応後はdevelop→masterという順番でマージを行い、本番リリースを行います。

xxxの箇所はプロジェクト内で決めた命名規則に従い作業者が命名する。

releaseブランチ

リリースを行うためのブランチ。リリースに際して必要な修正(本番環境に合わせた設定を行うなど)を行うブランチです。

developから派生させてリリースに必要な修正を行った後、develop→masterという順番でマージを行い、リリースを行います。

リリースが完了したら当ブランチは削除する。

supportブランチ

旧バージョンのサポートが必要な場合、そのモジュールを管理するためのブランチです。

masterから派生させて作成します。

開発~リリース手順

Git-flowモデルを使用した開発からリリースまでの手順は以下のような感じになります。

  1. developブランチからfeature/xxxブランチを作成する。
  2. feature/xxxブランチ上で開発を行う。
  3. 単体テストが完了したら、developブランチへマージを行う。
  4. develop環境でテストが完了後、releaseブランチを切りリリースへ向けた微調整を行う。
  5. releaseブランチをmasterブランチとdevelopブランチへ反映する。
  6. masterブランチの内容をリリースする。

git-flowの運用イメージ

備考

  • git-flowモデルを簡単に利用するためのプラグインもあります。