Git のワークフロー
一人での開発の場合、github flow
を好み、複数人の開発では、git flow
を好みます。
使用するブランチの役割
Release ブランチ
release
現在本番環境にリリースされているブランチ
Master ブランチ
master
常時デプロイ可能なブランチ
Featureブランチ
feature/#IssueNumber-*
Mainブランチから生やしたブランチ。
各 issue,または epic 毎に作る
Topicブランチ
topic/*
Featureブランチから生やしたブランチ。Featureブランチにマージされる。
Hotfixブランチ
hotfix/#IssueNumber-*
Releaseブランチから生やしたブランチ。緊急対応のときに利用する。
issue番号を必ず残す
通常の開発のブランチ管理の流れ
master
からfeature
ブランチを切るfeature
ブランチまたはfeature
ブランチの子ブランチ(topic ブランチ)で作業- 作業完了及びデバッグ完了したら親ブランチ(枝元のブランチ)にプルリクエストを出す
- コードレビューとデバックが終わったらマージ後、
feature
ブランチの削除をして、すぐにmaster
に取り込む。 - プロジェクト管理をしている場合はチケットを本番反映済みにする
緊急不具合対応の場合
master
からhotfix
ブランチを生やす。修正の規模が大きい場合はhotfix
ブランチからfeature
ブランチを生やすfeature
ブランチで作業完了及びデバッグ完了したらhotfix
ブランチにプルリクエストを出しレビュアーにマージしてもらうhotfix
ブランチをrelease
ブランチにマージ。その後、release
ブランチをmaster
ブランチマージする。
基本原則
機能追加、バグフィックスなどは issue の番号と説明的な名前のブランチ名にして master から作成する
hotfix
ブランチの場合はhotfix/
+issue の番号
と説明的な名前のブランチ名で命名する- ブランチ名で複数の単語を使う場合は
-
を使う
フィードバックや助言が欲しい時、ブランチをマージしてもよいと思ったときは、Pull Request を作成する
- フィードバックや助言が欲しい時、または作りかけの Pull Request には[WIP] をつける
issue テンプレート
要望テンプレート
Title: 新規提案
Description:このプロジェクトに必要と思った内容の提案
# 概要/背景
# 目的
# 実装案
# 備考
不具合テンプレート
Title:不具合報告
Description:不具合と感じ改善が必要と思ったものの報告
# 概要
# 再現手順
# 修正しないとどう困るか
# 原因と思われる部分
# 修正案 / 理想と思われるの状況
# 備考
Pull Request テンプレート
<!-- あくまでテンプレートなので必ずしもすべての項目を埋めなくてよい -->
# 概要/対応issue
<!-- 変更の目的 もしくは 関連する Issue 番号 -->
# 変更内容
<!-- ビューの変更がある場合はスクショによる比較などがあるとわかりやすい -->
# 影響範囲
<!-- この関数を変更したのでこの機能にも影響がある、など -->
# 動作要件
<!-- 動作に必要な 環境変数 / 依存関係 / DBの更新 など -->
# 補足
<!-- レビューをする際に見てほしい点、ローカル環境で試す際の注意点、など -->