LoginSignup
8
13

More than 5 years have passed since last update.

Gitで環境ごとのブランチを作成する

Last updated at Posted at 2017-10-29

やりたかったこと

  • 環境設定をブランチごとにコミットしたい

ブランチを分けたい3環境

  • 開発環境 → ローカル環境の設定を管理するブランチ
  • テスト環境 → テスト環境の設定を管理するブランチ
  • 本番環境 → 本番環境の設定を管理するブランチ

対応前のブランチ

  • master → develop → test
    • master → 本番環境で利用
    • develop(masterから派生) → ローカル開発環境で利用
    • test(masterから派生) → テスト環境で利用

問題点

  • 各ブランチに環境設定をcommitするとブランチ間のマージで毎回差分がでる

原因

  • 作業の流れとブランチ構成が合っていなかった

作業の流れ

開発 → テスト → リリース
develop → test → master

ブランチの流れ

master → develop → test

対応

  • 作業の流れに合わせてブランチを作成し直す(develop → test → master とする)
  1. masterブランチからdevelopブランチをチェックアウト
  2. developブランチにて開発環境の設定を編集しcommit
  3. developブランチからtestブランチをチェックアウト
  4. testブランチにてテスト環境の設定を編集しcommit
  5. testブランチをmasterブランチにマージ
  6. masterブランチにて本番環境の設定を編集しcommit
  7. 以降、はdevelopブランチで開発 → testブランチにマージ → masterにマージ の順序で作業することで環境設定まわりで差分が発生しなくなる

その他

  • 今使っているブランチ構成

    • develop → 開発環境用のブランチ
    • feature / hotfix(developから派生、develop/masterに合流) → 機能、障害ごとの開発環境用のブランチ
    • master(developから派生) → 本番環境用のブランチ
    • test(masterから派生) → テスト環境用のブランチ(本番環境をベースにして、テストしたいfeatureのみをマージして利用している。毎リリースごとにmasterから作り直し)
  • GitFlowを参考にしていたが、日々リリースがある場合developブランチの状況把握、整合性の確保が難しくなった

  • GitHubFlowを参考にしfeatureからdevelopへのマージはredmineを利用しPullRequest形式にしてリリースすることで対応している

参考

GitFlow
GitHubFlow

8
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
13