如何在git fetch -all之后恢复本地的repo



使用reset --hard错误地更改了远程回购。我想从本地的仓库中找到它的旧版本。

不幸的是,我在本地repo中运行了git fetch --all,现在它与远程repo相同。

我试过git update-ref refs/remotes/origin/master refs/remotes/origin/master@{3}。但是我的repo和远程的repo还是一样的。

我怎样才能恢复我的本地回购?

如果你这样做了,在某一点上,有"正确的"在本地的repo上提交origin/master,它应该列在:

git reflog origin/master

找出正确提交的哈希值,并使用您认为合适的哈希值:

  • 如果你想强制push回原点:
git push --force-with-lease origin <sha>:master
  • 如果你只想设置你的本地origin/masterref,在你输入的命令中使用它:
git update-ref refs/remotes/origin/master <sha>

等等……

最新更新