可能是因为git rebase master
我执行了git pull
后睡眠不足而不执行强制推动。现在我的拉取请求搞砸了,包括来自master的所有提交。
有什么建议可以还原吗?
答案 0 :(得分:1)
git reflog
多次为我救援。
此参考日志记录对本地存储库/分支/引用的更新。
因此,如果在这种情况下直接在pull之前找到所需分支的头部提交,则可以将当前分支重置为该引用。例如,要重置为HEAD@{2}
git reset --hard HEAD@{2}
注意:在使用--hard
答案 1 :(得分:0)
运行git pull
只是一个提取,然后是上游分支的合并。假设合并成功并且你仍然检查了这个分支,这样的东西应该修复它:
$ git reset @^1
将分支重置为应该是重新分支的第一个父分支(第二个父分支是分支的旧上游版本的头部。)您可以在执行重置之前进行验证:
$ git log --graph @^1
或
$ gitk @^1
如果那些看起来很健全,那么重置应该这样做。它不会触及工作树中的文件,因此您可以查看是否会导致任何意外的更改。我怀疑没有,因为合并可能是代码所涉及的无操作(再次,假设它成功了。)