我处于一个奇怪的困境 - 我们让开发人员多次跨分支执行“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 真正属于 master,而 C、D 和 E 属于分支。
还原图表的最佳选择是什么?提交我已经被拉到其他分支和本地存储库。我是恢复单个提交的唯一选择吗?上图是简化的——有超过 40 个提交被错误地合并。
我已经尝试了几件事,包括将 F 和 G 重新定位到 B 上,但这创建了 H' 和 I' 并且我不确定如何处理已经被拉/合并的旧 H 和 I。
更新
如果我只是想 git revert master 上的特定提交并将它们选择打包到分支上,我如何将提交“前置”到分支上?在这种情况下,我如何挑选 C 和 D 成为 J 的父母?