Help us understand the problem. What is going on with this article?

git-flowで用いるブランチまとめ

git-flow

git-flowはDriessen氏がブログにて発表したgitの開発手法であり、それを実現するツールの名前でもあります。

今回はツールの説明ではなく、ブランチを中心とした開発手法についてまとめます。

5つのブランチ

git-flowにはmaster, release, develop, feature, hotfixの5つのブランチが登場します。

メインブランチ

開発のコアとなるブランチ。
bm002.png

master

製品として出荷可能な状態であり、アプリケーションが安定して動く状態にする必要がある。

develop

次のリリースのための最新の開発作業の変更が反映されている状態。このブランチが常に最新。

サポートブランチ

機能の追跡、製品リリースの準備、製品に起きた問題をすばやく修正すること、などを容易にするためのブランチ。

feature

分岐元:develop
merge先:develop

fb.png

developからブランチを切り、新機能の開発を行うのに用いる。
ブランチ名はfeature/news_feedなど、実装する機能をfeature/の後ろに書くなどすればいい。
最終的にはdevelopにmergeする。この時、--no-ffオプションを付けてmergeすると、その機能実装に使ったコミットがまとまり、差分の管理が楽になる。

merge-without-ff.png

release

分岐元: develop
マージ先: develop と master

リリースブランチは develop ブランチから作成される。release/1.0といった感じで切ればいい。
この間に新機能に不具合が見つかった場合は、work/fix_bugなど修正用のブランチをここから切り、修正が終わったらこのブランチにmergeする。
デバッグが終わるまでdevelopにmergeすることは許されない。

developにmergeされたら、developをmasterにもmergeして安定版を確保する。

hotfix

分岐元: master
マージ先: develop と master

hotfix-branches1.png

リリース後、万が一不具合が見つかったらhotfixブランチを用いて修正を行う。
masterが現在のリリース内容と一致しているので、masterからブランチを切る。
要は、releaseブランチの逆である。
releaseが
develop→release→develop→masterとなっているとしたら

hotfixは
master→hotfix→master→developである。

まとめ

master, release, develop, feature, hotfixのブランチの役割を把握して運用することで、開発がスムーズに、そして高品質なアプリを作ることができる。

参考

"A successful Git branching model" 日本語訳
http://keijinsonyaban.blogspot.jp/2010/10/a-successful-git-branching-model.html

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away