我已经分配了一个存储库,然后进行了一些更改,然后将其推入我的主分支。然后,我从我分叉的仓库中获取了更改,并将其合并到了我的主人中。我有很多合并冲突。我将它们全部修复了,除了代码中的某个地方,我错过了IMP更改。我没有推动这种变化,也没有承诺。我该如何恢复合并?我分叉的仓库中的提交是旧的,我的仓库有我的新提交。
如果我正确阅读了您的问题,您将某些内容合并到master
中,但是有某种问题,您想取消合并并可能重新开始。在这种情况下,我认为您可以摆脱以下内容:
git reset --hard HEAD
因为您还没有承诺任何事情,因此合并的唯一真正影响是您的工作直接文件,甚至可能是您的阶段,从合并中"肮脏"。在尝试合并之前,上面的命令将重置工作并将文件划分为他们在Head Commit中所处的状态。但是您的分支机构的实际历史尚未改变,因此您在这方面很安全。
如果您很好奇,如果您进行了合并,可能会与现在的其他工作合并,那么您可以使用git rebase
来直接提交。考虑以下图:
... A --- B --- C --- F ... master
/
--- D --- E --- feature
在这里,feature
在COM A
处与master
差异,但随后合并为Merge Commit F
中的master
。现在您要删除该合并提交。您可以将master
反弹以提交A
如下:
git rebase <SHA-1 of commit A>
git将重播A
顶部master
的所有提交,但是它将忽略 在F
上发生的合并提交。默认的行为是忽略合并提交并遵循主要父母的路径,因此这是处理这种情况的一种方法。