共有ブランチで操作せずにマージ済みのコミットを取り消したい
・マージ済みのブランチを一旦戻したい
・マージを取り消すだけで、後々にまた(ほぼ)同じ内容をマージする
・同じブランチ名を使いたい
・共有ブランチは基本、マージ&プッシュのみしかしてはいけないと教わった
・git revertを何回も繰り返す可能性がある(revert revert みたいになるとややこしくなる)
上記のような状況になった時、自分なりに対応したことを綴ります。
間違っているところがあるかもしれません。
使うのはgit revertとgit cherry-pickです。
- 変更のあるブランチで戻したいコミットをrevertする
- masterブランチで1でrevert済みのブランチをマージする (ここで戻る)
- 新しくブランチを切る
- revertしたブランチと同じ内容を残しておきたいので、cherry-pickでコミットする
- 同じブランチ名を使いたいなら、元のブランチを削除する(ローカル、リモート)
- 新しく作ったブランチを元のブランチ名にする