GitHub運用
私の勤めている会社では、GitHub運用にgit-flow。Issueドリブン開発を採用しています。
gitは開発する上で、とても重要な概念なので自分自身の理解と整理のために、git-flow、Issueドリブン、ブランチの命名規則などについてまとめてみました。
git-flow
正確にいうと「A successful Git branching model」をサポートするためのツールの名称らしいです。
git-flowでは、下記の5つのブランチを利用します。
masterブランチ
リリースしたソースコードを管理するためのブランチ。
developブランチ
開発を行うためのブランチ。開発者は、主にこのブランチ上で作業を行う。
featureブランチなど、他のブランチで行った作業は、ここにマージされる。
featureブランチ
主要な機能を実装するためのブランチ。機能の実装やバグフィックスなど、タスクごとにdevelopブランチより
featureブランチを作成し、作業を行う。
releaseブランチ
リリースの準備を行うためのブランチ。プロダクトをリリースする前に、このブランチをdevelopブランチより作成し、微調整を行う。
releaseブランチで作業した内容を、同時にdevelopブランチにもマージし、最新の開発版を反映させる。
releaseブランチを作成することで、リリース準備と次のバージョンに向けた開発のコードを分けることができる。
hotfixesブランチ
リリースされたソフトウェアに緊急の修正を行うためのブランチ。
- master: 本番、releaseからマージ
- develop: 開発環境
- release: ステージング環境
- feature: 各機能開発環境 developからブランチを切る
- hotfixes: バグ対応
Issueドリブン開発・命名規則
Issueドリブン開発とは、実装における課題をタスクとして管理・運用する開発手法になります。
新規機能の追加やバグ修正などをIssueとして立てて、それを解決するためのブランチを切り、
コミットやPRでIssueを参照しながら開発を進めるという流れになります。
Issueドリブン開発の流れ
1. GitHub上で、課題(タスク)のIssueを立てる。
2. Issue番号が発行されるので、Issue番号を付与したブランチを作成する。例)feature/#1-add-login
3. Issueの課題(タスク)に沿った、開発を行う。
4. 開発が完了したら、developブランチにコミットする。PRのコメントにclose #1
と記述すると、マージ後にIssueがクローズされます。
コミットメッセージ
例)[fix]refs #1 add-login
- fix:バグ修正
- add:新規(ファイル)機能追加
- update:機能修正(バグではない)
- clean:整理(リファクタリング等)
- remove:削除(ファイル)
Discussion