知らず知らずのうちに、弊社内のsrcリポジトリの開発フローがgit-flowに沿ったものになっているようです。まだイマイチ理解できていないスタッフ向けに、ここで簡単におさらいし、一歩進んでリリースまでを復習してみようと思います(私は軟弱なのでSourceTreeを使います)。
詳しくGitを知りたい人は、まずはこちら。
こちらは弊社疋田のまとめ記事です。
git-flowの概要を知りたい方は、以下が参考になりました。基本的なGitの使い方が分かっていれば理解できると思います。
- Gitブランチを使いこなすgit-flow/GitHub Flow入門(1):いまさら聞けない、成功するブランチモデルとgit-flowの基礎知識 (1/2) - @IT
- Gitブランチを使いこなすgit-flow/GitHub Flow入門(3):図とコマンドで分かる! git-flowによる開発の流れと使い方 (1/2) - @IT
1. 初期化
git flow initに相当します。SourceTreeを使っていればgit-flowのワークフローの準備は簡単です。メニュー右上の「Git Flow」で、デフォルトのブランチ名のままOKすれば、git-flowで使われるブランチ群が作成されます。
2. 日々の開発作業
git flow feature ~に相当します。機能の開発を行うときは、developブランチから機能についてのfeatureブランチを作成して開発を進めます。SourceTreeから実施するには、以下の手順を踏みます。
対応開始
featureブランチを作成します(例としてfeature/feature_aを追加します)。
対応中
作成したfeatureブランチに対して成果物をコミットしていきます。
対応完了
機能の実装、テストが完了したら、メニュー右上のGit FlowからFinish Currentを選択しdevelopブランチにマージします。rebaseするのか明示的にmergeコミットするのか、といった点はプロジェクトの方針に合わせてご自由に。
完了したらdevelopブランチにマージされていることが確認できると思います。
3. リリース作業
git flow release ~に相当します。リリースに必要な機能の開発が進んだら、いよいよリリース準備をします。大まかな流れとしては、release/1.0.0のようなリリース準備用のブランチを作成し、リリース作業を行います。以下の記事がよくまとまっていました。
Git Flowによるリリース | Developers.IO
4. 緊急対応
git flow hotfix ~に相当します。リリース後に発生した不具合にへの対応など、緊急対応はhotfixブランチを作成して行います。具体的な例を以下に示します。
対応開始
メニュー右上のGit FlowからFinish Currentを選択し、hotfixブランチを作成します(例としてhotfix/0.1.1とします)。
対応中
作成したhotfixブランチhotfix/0.1.1に対してコミットしていきます。
対応完了
対応が完了したらメニュー右上のGit FlowからFinish Currentを選択し、リリース準備に入ります。ここでOKすると、hotfix/0.1.1がリリースされます。Tagに修正概要をメッセージとして残すと良いでしょう。
具体的には、masterブランチとdevelopブランチにhotfix/0.1.1の修正内容がマージされ、masterブランチに、最初に入力したHotfix Versionのタグ0.1.1が打たれます。
これで修正対応のリリースは完了です。





