所以我们已经让一个 git 分支进入了一个棘手的状态:
两个分支:
* master
* other_branch
上周有人不小心将 other_branch (过早地)合并到 master 并推送到 origin。我们注意到了这个错误,我天真地承诺了
git revert bad_merge_commit
来“解决”问题。一切看起来都很好,我们继续我们的生活......
今天我们尝试将 master 合并到 other_branch 作为将 other_branch 合并到 master 的一步。但我的回复似乎引发了一场噩梦。当 master 合并到 other_branch 时, other_branch 上的所有(大部分?)工作都被删除。我认为这是因为我的还原指示所有较旧的提交都被还原。
当然,在我的还原之上,master 上现在还有很多天的提交,所以解开这个看起来可能很困难。
有什么方法可以修复损坏吗?我是否可以提出一些变基论点并删除两个有问题的提交?
非常感谢!
[更新 - 根据要求添加当前状态的详细信息]
other_branch 很久以前就从 master 分支出来了。我们的标准做法是在进行过程中将 master 反复合并到 other_branch 中,以最大程度地减少冲突的累积(有时我们会变基,但在这种情况下不会)。
主提交 A | 乙| C | BAD_MERGE [other_branch_@S] | REVERT_OF_BAD | D | E | F ... 头
other_branch 提交 P | 问 | 右 | S [BAD_MERGE_FROM_HERE] | T | 你 | V ... 头
尝试将主 HEAD 合并到 other_branch HEAD 会导致问题。
查尔斯,我目前正在尝试使用您在此处建议的解决方案修复 master 的副本:如何在保留更改的同时从 Git 存储库中删除选定的提交日志条目?.
[/更新]