前回まででGitがどういうものかなんとなくわかったかと思います。

今回はシステム開発におけるGitの運用方法(ワークフロー)についてお話ししたいと思います。


Gitのワークフローは、簡単なものから複雑なものまでたくさんあります。

一般的によく使われるフローは下記の2つです。

  • Git Flow
  • Github Flow

このフローを順番に説明します。

Git Flow

masterブランチとは別に開発(develop)ブランチを作成して、そこから他のブランチを派生させるフローです。リリース間隔がある程度あいている開発に向いています。

図にするとこんな感じです。

gitflow_develop

  1. maserブランチからdevelopブランチを作成
  2. developブランチからbranch Aを作成
  3. branch Aでファイル編集してコミット
  4. branch Aをプッシュしてプルリクエスト後、developにマージ
  5. developブランチからbranch Bを作成
  6. branch Bでファイル編集してコミット
  7. branch Bをプッシュしてプルリクエスト後、developにマージ

リリースする際、下記手順になります

gitflow_release

  1. developブランチからrelease Aブランチを作成
  2. 不具合修正などがある場合、release Aブランチで修正を行う
  3. release Aブランチをmasterブランチにマージ
  4. 2の修正がある場合、developブランチにもマージ

手順完了後、masterブランチをサーバーに反映するとリリース完了となります。

以降、開発するたびに上記手順を繰り返します。

Github Flow

masterブランチからそのまま他ブランチを作成するフローです。masterブランチにマージした修正はすぐにリリースされることを推奨しています。リリースの頻度が高い開発でよく使われます。

図にするとこんな感じです。

githubflow

  1. maserブランチからbranch Aを作成
  2. branch A でファイル編集してコミット
  3. branch Aをプッシュしてプルリクエスト後、masterブランチにマージ

手順完了後、masterブランチをサーバーに反映するとリリース完了。

オススメ

Gitフローは手順が複雑でブランチの管理が大変です。その点、Githubフローはブランチをたくさん作る必要がないのでフローが非常にわかりやすいです。もし自分のサービスでGitを使うのであればブランチ管理が単純なGithubフローをオススメします。

ただ、弊社では上記の2つをカスタムしたようなフローを使用しています。

次回は、何故そのようなフローにしたのかについてお話ししたいと思います。

関連タイトル