合并 Git,然后撤销,再撤销撤销

7
所以我们把一个git分支变得棘手了:
两个分支: * master * other_branch
上周有人不小心将other_branch(过早地)合并到master并推送到origin。我们注意到了错误,我天真地提交了
git revert bad_merge_commit
来“修复”问题。一切看起来都好像没问题,我们继续生活...
今天,我们试图将master合并到other_branch,作为将other_branch带入master的步骤。但是我的还原似乎引起了噩梦。当master合并到other_branch时,其他大部分工作都被删除了。我认为这是因为我的还原指示要还原所有旧的提交。
当然,现在在我的还原之上有许多天的提交,所以解决这个问题似乎会很困难。
有没有修复损害的方法?我可以使用一些rebase参数进入并删除两个有问题的提交吗?
非常感谢!
[更新 - 根据请求添加当前状态的详细信息]
other_branch 是一段时间以前从 master 分支派生出来的。我们的标准做法是在进行其他操作时重复将 master 合并到 other_branch 中,以尽量减少冲突的积累(有时我们会变基,但这种情况下不会)。

master 提交 A | B | C | BAD_MERGE [other_branch_@S] | REVERT_OF_BAD | D | E | F ... HEAD

other_branch 提交 P | Q | R | S [BAD_MERGE_FROM_HERE] | T | U | V ... HEAD

试图将 master HEAD 合并到 other_branch HEAD 时出现了问题。

Charles,我正在使用您在此处建议的解决方案,在 master 的副本上尝试修复:How to remove selected commit log entries from a Git repository while keeping their changes?

[/ 更新]


你能否明确说明(最好附上详细的图片)你目前所处的状态?修复起来不应该太难,但听起来你可能需要修复由于最近尝试将 master 合并到 other_branch 导致的损坏,如果已经提交并推送。 - CB Bailey
1个回答

4

谢谢,看起来这非常准确地描述了我们的情况。我需要阅读和消化。一旦完成,我会尽快回复 :) - Wikiup
是的,那里描述的rebase --no-ff似乎是关键。我们还有一些工作要做,但我认为你已经指出了正确的方向。谢谢!(这让我有一个后续问题:在考虑到其他人已经将其推送到origin的情况下,我应该怎么做才能撤销错误的合并并避免这种情况?) - Wikiup
code.google.com的链接似乎不再具有所需的内容。 - Choylton B. Higginbottom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接