これで、git ブランチがトリッキーな状態になりました。
2 つのブランチ:
* master
* other_branch
先週、誰かが誤って other_branch を (時期尚早に) master にマージし、オリジンにプッシュしました。私たちはエラーに気づき、私は素朴にコミットしました
git revert bad_merge_commit
問題を「修正」します。すべてが順調に見えました、私たちは自分たちの生活を続けました...
今日、other_branch を master にするためのステップとして、master を other_branch にマージしようとしました。しかし、私の復帰は悪夢を引き起こしたようです. master が other_branch にマージされると、other_branch での作業のすべて (ほとんど?) が削除されます。これは、以前のコミットをすべて元に戻すように元に戻すように指示しているためだと思います。
もちろん、元に戻したことに加えて、マスターには何日分のコミットがあるので、これを解くのは難しいようです。
損傷を修復する方法はありますか?リベースの議論に手を差し伸べて、2 つの問題のあるコミットを削除することはできますか?
どうもありがとう!
[更新 - リクエストに応じて現在の状態の詳細を追加]
other_branch は、かなり前に master から分岐しました。私たちの標準的な方法は、競合の蓄積を最小限に抑えるために master を other_branch に繰り返しマージすることです (リベースすることもありますが、この場合はそうではありません)。
マスターコミット A | ビ | シー | BAD_MERGE [other_branch_@S] | REVERT_OF_BAD | D | え | F ...ヘッド
other_branch コミット P | Q | R | S [BAD_MERGE_FROM_HERE] | T | T | う | V ...ヘッド
master HEAD を other_branch HEAD にマージしようとすると、問題が発生します。
チャールズ、私は現在、あなたがここで提案した解決策を使用してマスターの複製を修正しようとしています: How to remove selected commit log entry from a Git repository while keep their changes? .
[/アップデート]