第3章 Github Flow/Git-Flowを使った運用

git-flowの概要

git-flowの概要

git-flowとは

git-flowは、主にGitのブランチ操作を自動化するためのツールです。

Gitはブランチが簡単に作れるようになっていますが、ブランチの管理方法についてはルールが定められていないため、ブランチの扱いで混乱が起きやすくなっています。
そこで、ブランチ管理のルールを設けて、作業の自動化をはかったのがgit-flowになります。

git-flowを使った場合のリポジトリ初期化からブランチ作成、終了までの簡単な流れは下記のようになります。

# リポジトリの初期化
git flow init -d

# 開発用featureブランチの作成
git flow feature start ver1.0

...作業

# コミットします。
git commit -am "開発終了"

# 開発終了後、ブランチを終了します
git flow feature finish ver1.0

git-flowを導入するメリットには下記のようなものがあります。

git-flowのメリット
  • 本番リリースしたデータと、制作中のデータの区別が明確になる
  • 修正、リリース、機能追加などのいくつもの種類の違う作業を並行して進められる
  • リリースした内容の調査が簡単になる
  • git-flow用のコマンドでほとんどの管理を行えるので、操作マニュアルを用意しやすい
開発モデル:A successful Git branching model

git-flowはA successful Git branching modelという開発モデルに基づいています。

A successful Git branching model(翻訳版)

A successful Git branching model では masterとdevelopのメインブランチが常に存在し、必要に応じてfeature、release、hotfixといったサポートブランチが作成されます。
このfeature、release、hotfixブランチはmasterとdevelopの両方、もしくはdevelopのみにマージされ、マージ後は削除されます。

各メインブランチ、サポートブランチの特徴・役割は下記のとおりです。

メインブランチとサポートブランチの一覧
master :
常にリリースできる状態のメインブランチ
develop :
最新の開発作業の変更を常に反映するメインブランチ
feature :
新機能の開発を行うサポートブランチ
release :
リリースの準備用サポートブランチ
hotfix :
バグフィックス用のサポートブランチ

このA successful Git branching modelを運用しやすいように、コマンドをまとめたのがgit-flowです。
そのため、git-flowはA successful Git branching modelを理解し、そのモデルを使って運用することが前提となります。

関連記事