重做错误合并GIT

时间:2017-05-09 12:20:31

标签: git git-merge git-rebase git-merge-conflict

很久以前在git历史中我可以看到有人做了两个分支的错误合并。他有冲突,所以他只是删除了许多冲突的变化。结果是主分支不包含这些变化(在我们检查之前我们甚至没有怀疑它。)

分支功能已合并到分支开发中。 功能包含更改XY Z.但是,在合并期间删除了Y和Z,因此开发仅包含X.我想将功能合并到再次开发,因为我需要所有更改。但是,GIT认为它们已经合并(它知道它们是冲突的并且是手动“解决”的)。

如何进行合并?

一些注意事项:

  • 我不能简单地合并,根本看不到变化。
  • 我不能挑选,它不起作用。
  • 我不想“只复制文件并再次提交”,因为这意味着GIT在关键用例中失败
  • 我尝试使用不同的git合并策略并获得部分成功,但每种策略都省略了一些文件,最后我没有 development 中的所有更改

当然,将功能合并到新分支(从开发提交开始,就在错误提交之前)工作。我可以看到所有必要的变化。但是,由于上述原因,我无法将此新分支合并到开发中。

1 个答案:

答案 0 :(得分:0)

查看git book部分,了解如何撤消合并:https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_undoing_merges

它建议使用git revert来撤消合并提交。并且为了解决重新合并的问题(因为git抱怨这些提交已经在历史中),它建议还原恢复(而不是再次尝试合并)。