色々とコミットしてから、フィーチャーブランチを作成したくなった
複数の修正を行ったあと、本番反映せずに追加で複数の修正...というのが頻繁に起こる可能性が限りなく高い...
作成日:2025-02-05, 更新日:2025-03-24
このページの概要
- ブランチの運用方針 - 本来なら最初に決めて作業を行う
- 今回の問題の対応 - 何も決めずに作業を行ったので...その尻ぬぐい
ブランチの運用方針
ローカル環境で作業して、ステージング環境で確認してもらう。問題無ければ本番反映
使うブランチ
- 本番環境
- masterブランチ
- ステージング環境
- developブランチ
- 確認用フィーチャーブランチ
- ローカル環境
- 作業用フィーチャーブランチ
- 確認用フィーチャーブランチ
流れ
- 修正Aは「作業用フィーチャーブランチA」を作成
- 修正後、確認するために「確認用フィーチャーブランチ」にマージ
- 修正Bは「作業用フィーチャーブランチB」を作成
- 修正後、確認するために「確認用フィーチャーブランチ」にマージ
- ステージング環境を「確認用フィーチャーブランチ」にチェックアウトし、確認
- ~「修正A」を本番反映することが確定~
- 「developブランチ」に「作業用フィーチャーブランチA」をマージ
- ステージング環境を「developブランチ」にチェックアウトし、確認
- 「masterブランチ」に「developブランチ」をマージし、本番反映
- ~「修正B」も本番反映することが確定~
- 「developブランチ」に「作業用フィーチャーブランチB」をマージ
- ステージング環境を「developブランチ」にチェックアウトし、確認
- 「masterブランチ」に「developブランチ」をマージし、本番反映
「確認用フィーチャーブランチ」は必要に応じて作り直す
※全修正の本番反映が完了したら削除しておくのが良さげ
今回の問題の対応
develpoブランチに複数の修正をコミットし、本番反映する前に修正が追加。
最後に追加した修正を先にコミットする必要がでてきた...
問題
develpoブランチにすべての修正がコミットされている
やりたいこと
- 修正を行う前のdevelpoブランチが欲しい
- 修正内容ごとにフィーチャーブランチを用意したい
やったこと
「git cherry-pick」を使うらしいけど...修正内容の件数・作業個所がそれほど多くないし、gitコマンドに精通していないので面倒だけどある程度手動で行った
※GUIとして、Sourcetreeを使ってます
- 保険でdevelopブランチからフィーチャーブランチを用意(※「git cherry-pick」というのを使わないなら不要?)
- Sourcetreeで、戻したいとこまでコミットを取り消す
- Sourcetreeで、強制プッシュを行う(※リモートのdevelopのほうも対応させるため)
- developブランチからフィーチャーブランチを作成1回目 - 確認用フィーチャーブランチ
- developブランチからフィーチャーブランチを作成2回目 - 作業用フィーチャーブランチA
- developブランチからフィーチャーブランチを作成3回目 - 作業用フィーチャーブランチB
- 作業用フィーチャーブランチA、作業用フィーチャーブランチBをそれぞれ手動で修正
- 確認用フィーチャーブランチに作業用フィーチャーブランチA、作業用フィーチャーブランチBをマージ
- ステージング環境を確認用フィーチャーブランチにチェックアウトし、確認
フィーチャーブランチが削除できない
$ git branch -d feature/new_20250205 error: The branch 'feature/new_20250205' is not fully merged. If you are sure you want to delete it, run 'git branch -D feature/new_20250205'.
▼「-D」を使うと削除可能
$ git branch -D feature/new_20250205 Deleted branch feature/new_20250205 (was 7f0f0e1).