很久以前,在git的历史中,我可以看到有人错误地合并了两个分支。他有一个冲突,所以他只是删除了很多冲突的变化。结果是主分支不包含这些更改(在检查之前,我们甚至都没有怀疑它)。
分支特性被合并到分支开发中。功能包含更改x y z。但是,在合并过程中删除了y和z,因此开发仅包含x。我想再次将功能合并到开发中,因为我需要所有更改。然而,git认为它们已经合并(它知道它们是冲突的,并且是手动“解决的”)。
如何合并?
一些注释:
我不能简单地合并,更改根本不可见。
我不能随便挑,它不起作用。
我不想“只复制文件并再次提交”,因为这意味着git在一个关键的用例中失败了
我尝试使用不同的git合并策略,但都取得了部分成功,但每种策略都遗漏了一些文件,最后我在开发过程中没有做任何更改。
当然,将特性合并到一个新的分支(在错误的提交之前从开发提交开始)可以工作。我能看到所有必要的变化。但是,由于上述原因,我不能将这个新分支合并到开发中。

最佳答案

查看Git Book部分,了解如何撤消合并:https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_undoing_merges
它建议使用git revert撤消合并提交。为了解决重新合并的问题(git抱怨那些提交已经存在于历史中),它会重新编译并还原还原(而不是再次尝试合并)。

08-27 06:27