私は奇妙な苦境に陥っています.開発者にブランチ全体で「git pull --rebase」を複数回実行してもらい、損傷を修復しようとしています. グラフはもともと次のようになっていました。
[master]
A--B (origin/master)
___\________________________
[branch]
\
C--D--E (origin/branch)
不完全なマージの後、グラフは次のようになります。
[master]
A--B---------------H--I (origin/master)
\ /
C--D--E--F--G
____________\_______________
[branch] \
J--K--L (origin/branch)
コミット F と G は実際にはマスターに属していますが、C、D、および E はブランチに属しています。
グラフを元に戻すための最善の策は何ですか? Commit I はすでに他のブランチやローカル リポジトリにプルされています。個々のコミットを元に戻す唯一のオプションはありますか? 上のグラフは簡略化したものです。誤ってマージされたコミットが 40 件以上あります。
F と G を B にリベースするなど、いくつかのことを試しましたが、H' と I' が作成され、既にプル/マージされた古い H と I を処理する方法がわかりません。
アップデート
マスター上の特定のコミットを git revert して、それらをブランチにパックするチェリーピックしたいだけの場合、どのようにコミットをブランチに「追加」しますか? この場合、C と D を選んで J の親にするにはどうすればよいでしょうか。