gitでマージを「元に戻す」のは簡単ではないという話がたくさんあります。短いバージョン:マージコミットを元に戻すと、将来これらの変更をマージしないようにgitに指示します。
この問題を軽減するためにマージを行うときにできることはありますか?ソフトウェア開発の通常の過程で、さらに重要なことに、変更をロールバックする必要があるときにリリースブランチの状態を制御する際に、マージを元に戻すことが本当に本当に役立つ状況はたくさんあります。
編集
私はこの記事で解決策を見てきましたが、実際には解決策とは考えていません。問題の説明の詳細です。必要です
- 常に--no-ffを使用してください
- それらに依存するコードを戻したい場合は、元に戻されたすべてのマージを覚えておいてください(これは、数時間、数日、数週間、または数か月先になる可能性があります…)
私が欲しいもの
Subversionでの動作は次のとおりです。「release-candidate」というブランチがあるとしましょう。これは、ステージングサーバーで実行し、機能を試す場所です。機能Aのブランチにマージするとします。Subversionでは、これはすべて1つのチェンジセットであり、すべてのファイルのすべての履歴がマージされます。気に入らないので取り出したいとしましょう。その単一のチェンジセットを元に戻すだけで、他のことを考える必要はありません。機能ブランチAは、ある時点でマージして取り出したことを覚えていなくても、将来いつでもマージできます。
その流れにできるだけ近づきたいです。どういうわけか、物事がより多くのステップを踏むようになったとしても、「将来的に物事を覚える必要がない」ように最適化したいと思います。(これは不可能かもしれません...)