やりたかったこと
- 環境設定をブランチごとにコミットしたい
ブランチを分けたい3環境
- 開発環境 → ローカル環境の設定を管理するブランチ
- テスト環境 → テスト環境の設定を管理するブランチ
- 本番環境 → 本番環境の設定を管理するブランチ
対応前のブランチ
- master → develop → test
- master → 本番環境で利用
- develop(masterから派生) → ローカル開発環境で利用
- test(masterから派生) → テスト環境で利用
問題点
- 各ブランチに環境設定をcommitするとブランチ間のマージで毎回差分がでる
原因
- 作業の流れとブランチ構成が合っていなかった
作業の流れ
開発 → テスト → リリース
develop → test → master
ブランチの流れ
master → develop → test
対応
- 作業の流れに合わせてブランチを作成し直す(develop → test → master とする)
- masterブランチからdevelopブランチをチェックアウト
- developブランチにて開発環境の設定を編集しcommit
- developブランチからtestブランチをチェックアウト
- testブランチにてテスト環境の設定を編集しcommit
- testブランチをmasterブランチにマージ
- masterブランチにて本番環境の設定を編集しcommit
- 以降、はdevelopブランチで開発 → testブランチにマージ → masterにマージ の順序で作業することで環境設定まわりで差分が発生しなくなる
その他
-
今使っているブランチ構成
-
develop → 開発環境用のブランチ
-
feature / hotfix(developから派生、develop/masterに合流) → 機能、障害ごとの開発環境用のブランチ
-
master(developから派生) → 本番環境用のブランチ
-
test(masterから派生) → テスト環境用のブランチ(本番環境をベースにして、テストしたいfeatureのみをマージして利用している。毎リリースごとにmasterから作り直し)
-
GitFlowを参考にしていたが、日々リリースがある場合developブランチの状況把握、整合性の確保が難しくなった
-
GitHubFlowを参考にしfeatureからdevelopへのマージはredmineを利用しPullRequest形式にしてリリースすることで対応している