ブランチのバグを見つけた場合に備えて、git でブランチのマージを元に戻す方法を説明する複数のリソースがあります。このようなマージに続くステップは、ブランチが上流にプッシュされていない場合は、ブランチ/マージでリセット/エラーを修正するか、ブランチでエラーを元に戻す/修正/元に戻す/マージを元に戻します。ただし、これは分岐コードにエラーがあった場合にのみ関係します。今日、マージコミットで競合が解決された方法のために無効だったマージを元に戻そうとしました。
以前の状況:
master o -- 1 -- C
\ /
branch a -- b
ブランチを master にマージした開発者は、コミット 1 で他の誰かによって実装されたコードに関連するコミットに遭遇しました。競合を解決してコミットし、マージ コミット "c" を作成しました。問題は、その作業中にバグが発生したことです。私がやりたかったのは、このマージを元に戻し、適切に再マージして、次のようなものを作成することでした:
master o -- 1 -- C -- ~C -- C1
\ / /
branch a -- b ----------
ここで、"~C" は元に戻された "C" であり、"C1" は正しいマージです。残念ながら、私にはこれができないようです。
もちろん、1 にリセットして「ブランチ」を「マスター」に再マージすることはできますが、変更はすでに上流にあり、私は汚いトリックをしたくありませんでした。
スレッドで見つけた解決策まだプッシュされていない Git マージを元に戻すことはできませんでした。
私が得た最もクリーンなアイデアは、「C」で壊れたコードを修正して「マスター」にコミットすることでしたが、この場合、競合するファイルのリストや競合する行の強調表示など、git からの助けは得られません。とても役に立ちました。
何か案は?