知らず知らずのうちに、弊社内の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
が打たれます。
これで修正対応のリリースは完了です。