可能是由于睡眠不足,而不是在git rebase master之后执行强制推送,我执行了一个git pull。现在,我的拉请求被搞砸了,包括来自主人的所有提交。有什么建议要恢复吗?
发布于 2016-10-13 17:42:17
git reflog多次来救我。
此参考日志记录更新到本地存储库/分支/引用。
因此,如果在这种情况下,在拉出之前直接找到所需分支的头提交,则可以将当前分支重置为该引用。例如,重置为HEAD@{2}
git reset --hard HEAD@{2}
注意:在使用之前,请绝对确定有关您的操作
发布于 2016-10-13 17:00:06
运行git pull只是一个获取,然后是上游分支的合并。假设合并成功,并且您仍然签出了这个分支,这样的东西应该可以修复它:
$ git reset @^1它将分支重置为第一个父分支,而第一个父分支应该是重基的分支(第二个父节点是分支的旧的上游版本的头)。您可以在进行重置之前进行验证:
$ git log --graph @^1或
$ gitk @^1如果这些看起来很正常的话,那么重置就可以了。它不会触及工作树中的文件,因此您可以看到这是否导致了任何令人惊讶的更改。我怀疑不会有任何结果,因为就代码而言,合并很可能是没有操作的(同样,假设它成功了)。
https://stackoverflow.com/questions/40025834
复制相似问题