1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PRのマージ先を間違えたときの対処法

1
Posted at

はじめに

PR をマージする際、向き先ブランチを間違えてしまったことはないでしょうか。
今回は、develop_test に入れるべき変更を誤って develop にマージしてしまったケースで、履歴を壊さずに安全に復旧した手順をまとめます。

同じ状況に遭遇した方の参考になれば幸いです。

発生した問題

  • PR のマージ先が develop になっていることに気付かずマージ
  • 本来は develop_test に入れるべき変更だった

やりたいこと

  1. develop にマージされてしまった変更を develop_test に移す
  2. develop からはその変更を取り除く

対応方針

  • develop は共有ブランチのため 履歴を変更しない

  • そのため

    • develop_test へは cherry-pick
    • develop からは revert
      を採用する

手順①:develop の変更を develop_test に移す

1. develop_test ブランチを最新にする

git checkout develop_test
git pull

2. develop にマージされたコミットのハッシュを確認

git log develop

例:

abc1234 修正内容

3. develop_test に cherry-pick

git cherry-pick abc1234

4. develop_test を push

git push origin develop_test

これで、本来入れたかった変更を develop_test に反映できました。

手順②:develop に入ってしまった変更を取り除く

1. develop ブランチを最新にする

git checkout develop
git pull

2. 該当コミットを revert

git revert abc1234

※ コンフリクトが発生した場合は解消後に commit

3. develop を push

git push origin develop

これで、develop から誤って入った変更を安全に取り除くことができました。

なぜ reset ではなく revert を使ったか

  • develop はチームで共有しているブランチ
  • reset --hard や force push は、他メンバーの作業履歴に影響する可能性がある

そのため、
履歴を残したまま取り消せる git revert を選択しました。

学び・再発防止

  • PR マージ前に マージ先ブランチの確認は必須
  • 特に複数の develop 系ブランチがある場合は要注意
  • 「間違えても revert + cherry-pick で安全に戻せる」ことを知っておくと冷静に対応できる

まとめ

  • 誤マージしても 慌てず・履歴を壊さず対応することが大切

  • 共有ブランチでは

    • 移動 → cherry-pick
    • 取り消し → revert
      が安全

同じミスをした方の助けになれば嬉しいです。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?