我分叉了一个回购并进行了一些更改然后将它推入我的主分支。然后我从我分叉的repo中获取了更改并将其合并到我的master中。我遇到了很多合并冲突。我修复了它们,但代码中的某个地方我错过了一个改变。我没有推动这一改变,也没有提交过。如何恢复合并?我分配的repo的提交有旧提交,我的repo有我的新提交。
答案 0 :(得分:1)
如果我正确地阅读了您的问题,您将某些内容合并到master
,但是存在某种问题,您想要取消合并并可能重新开始。在这种情况下,我认为你可以逃脱以下:
git reset --hard HEAD
因为你还没有提交任何东西,所以合并的唯一真正效果是你的直接文件,可能还有你的舞台,从合并中“脏”。在尝试合并之前,上述命令会将工作和暂存文件重置为HEAD提交时的状态。但是你的分支的实际历史还没有改变,所以你在这方面是安全的。
如果您好奇如果 已经提交了合并,可能与其他工作现在在合并提交之上,那么您可以使用git rebase
直接进行合并承诺。请看下图:
... A --- B --- C --- F ... master
\ /
--- D --- E --- feature
此处,feature
在提交master
时与A
不同,但随后在合并提交master
合并回F
。现在您要删除该合并提交。您可以将master
重新定义为A
,如下所示:
git rebase <SHA-1 of commit A>
Git会在master
之上重播A
的所有提交,但是忽略 F
发生的合并提交。默认行为是忽略合并提交并向后跟随主父路径,因此这是处理这种情况的一种方法。