如何从Git中失败的合并中恢复

时间:2012-10-14 00:08:31

标签: git merge

我在一个小项目上与朋友合作,我们使用Git作为源版本控制。这是问题场景:

  1. 我从版本A开始工作,并对版本B进行了一些本地提交。
  2. 我的朋友也从A开始,并将C版推送到中央仓库。
  3. 我做了'git pull --rebase'并推送了B版。所以远程回购就像A-> C-> B。
  4. 与此同时,我的朋友仍然在推动C版本。当他试图推动D版时,他做了一次失败的合并(我不知道他是怎么做到的)。结果是,提交D包含来自C-> D的变化,但是丢弃了来自A-> B的变化。因此,远程仓库目前看起来像A-> C-> B-> D,但是版本D从C-> B中删除了所有变化
  5. 我想知道修复此失败合并的最简单方法是什么。

1 个答案:

答案 0 :(得分:0)

你的朋友也可能做的是git push --force,结果是A-C-D

一种方法是让您再次push --force您的内容(A-C-B),并让您的朋友:

  • 在当前作品的基础上结帐tmp分行
  • git fetch origin
  • 将其master分支重置为origin/master
  • 来自D分支的cherry-pick tmp回到master(可能涉及合并)
  • git push origin