我们的远程主分支已被删除。我有一份主回购的本地副本,但有几个转速已经过时了。我能够通过将最后一个已知的提交哈希插入到URL中来查看github中的分支,但是在恢复它时却没有成功。我已经尝试了几个步骤来恢复它:
git reset --hard 16deddc05cb53dfaa2d198b1cf264416e19255e9
fatal: Could not parse object '16deddc05cb53dfaa2d198b1cf264416e19255e9'
git checkout 16deddc05cb53dfaa2d198b1cf264416e19255e9
fatal: reference is not a tree: 16deddc05cb53dfaa2d198b1cf264416e19255e9
可以理解,因为master不再存在。我有什么选择在这里恢复?
答案 0 :(得分:4)
如果您不知道最新版本的哈希,那么恢复它可能会失败。也许您可以做的最好的事情就是将您备份的主分支推送到github。由于修订已经在存储库中,因此它将是一个快速的网络操作。
如果你有ssh访问托管你的存储库的机器(你没有,在github上),那么你可以在git存储库中搜索孤儿。孤儿是一个不再有引用的提交。不幸的是,在这种情况下,这对你没有帮助。
有一些指针可以帮助你恢复丢失的提交,包括在这篇文章中找到孤儿的过程:
答案 1 :(得分:3)
获取确切的提交(及其历史记录中的所有内容):
git fetch origin 16deddc05cb53dfaa2d198b1cf264416e19255e9
从中创建一个分支:
git branch xyzzy FETCH_HEAD
您可以将其合并为一个步骤:
git fetch 16deddc05cb53dfaa2d198b1cf264416e19255e9:refs/heads/xyzzy
答案 2 :(得分:2)
如果 知道最新丢失提交的哈希值,请尝试使用github的Web UI解决问题。转到以下URL:
https://github.com/{username}/{repository}/compare/{hash}
应显示一个按钮,Create pull request
- 使用此按钮创建拉取请求并将历史记录合并回分支。