#git-flowとは
A successful Git branching modelを簡単に行えるように開発されたツール(gitプラグイン)のこと。
ツールを利用することでマージ漏れや作業場所の判断が容易になります。
#ブランチの種類
git-flowでは5つのモデルを利用して開発を進めていきます。
ブランチ種類 | 必須 | 内容 |
---|---|---|
develop | ○ | 開発を行う主軸となるブランチ。リリース前はこのブランチが最新のブランチになります。リリースの準備ができたらmasterブランチにマージします。 |
feature | ○ | 作業者が作業を行うブランチ。developブランチから各作業者がブランチを作成して開発していく。終わるとdevelopブランチにマージされ、featureブランチは削除される。 |
release | プロダクトをリリースするためのブランチ。featureブランチで各自が作業し、その集約がdevelopブランチとなり、いよいよリリースとなるとまずdevelopブランチからreleaseブランチを作成。リリース前の最終調整をreleaseブランチで行う。releaseブランチでの作業が終わるとその内容が、masterブランチとdevelopブランチにマージされる。マージするとreleaseブランチは削除される。 | |
master | ○ | リリースされた最新情報を管理するためのブランチ。リリースしたタイミングを管理するため、リリースタグも打つ。 |
hotfix | リリースしたプロダクトにバグがあってすぐ直したい場合に使うブランチ。リリースしたけどタイポがあった、とかセキュリティ的にまずいので緊急対応が必要!というときに使う。hotfixブランチはmasterブランチから作成する。作業終了後は、masterブランチとdevelopブランチにマージされ、hotfixブランチは削除する。 |
#実際の開発フロー
###1. 最新の developブランチを取得する
リモートから最新情報をローカルに持ってくる
git fetch
developブランチに切り替える
git checkout develop
リモートの情報をローカルに適用しながら最新のdevelopブランチを取得する
git pull --rebase origin develop
###2. developブランチをベースとしたfeatureブランチを作成する
今回は、feature/add_branch
を作成します。
git checkout -b feature/add_branch
###3. 実装してコミットする
コミットメッセージは開発担当者が見たときに分かりやすくなるようにする。
###4. 実装完了後、Githubにブランチをプッシュする
git push -u origin feature/add_branch
###5. Github UI上で、PullRequestを作成する
baseはdevelopブランチとなるようにする。
###6. レビューを行い問題なければマージする
※検証環境があれば、developブランチで一旦デプロイする。
###7. developブランチをチェックして問題なければPullRequestを作成する
baseはmasterブランチとなるようにする。
###8. PR作成者以外がレビューを行い、問題なければマージ
###9. 本番環境にmasterブランチをデプロイする。