Git合并,然后恢复,然后恢复恢复

所以我们把git分支变成了一个棘手的状态:

两个分支:

* master
* other_branch

上周有人意外地将other_branch(过早地)合并到主人身上并推到了原点。 我们注意到了这个错误,而我在我的天真中犯下了错误

git revert bad_merge_commit

以“解决”问题。 一切看起来不错,我们继续我们的生活...

今天,我们试图将master并入other_branch,作为将other_branch引入master的一步。 但我的回复似乎已经造成了一场噩梦。 当主人合并到other_branch时,other_branch上的所有工作(大部分?)都将被删除。 我认为这是因为我的回复指示所有较旧的提交都会被还原。

当然,在我的回复之上,现在已经有好几天对主人的承诺了,所以解开这看起来可能很困难。

有什么方法可以修复损坏? 我是否可以用一些重定义的参数来达到目的,并删除两个违规的提交?

非常感谢!

[更新 - 按要求添加当前状态的详细信息]

相当一段时间以前,other_branch已经脱离了主人。 我们的标准做法是将主反复合并到other_branch中,因为我们会尽量减少冲突的积聚(有时会发生重新分配,但在这种情况下不会)。

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

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

尝试合并主HEAD到other_branch HEAD会导致问题。

Charles,我目前正在尝试使用您在这里建议的解决方案修复master的副本:如何从Git存储库中删除选定的提交日志条目,同时保留其更改?

[/更新]


是的,问题在于恢复解除了合并引入的更改,但不合并自身。 我认为https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.html的附录部分描述了一种可能的解决方案。

这个文件也是Git的一部分,在Debian下你可以在/usr/share/doc/git-doc/howto/revert-a-faulty-merge.txt找到它。

链接地址: http://www.djcxy.com/p/51649.html

上一篇: Git merge, then revert, then revert the revert

下一篇: Are local function declarations cached?