繁体   English   中英

如何恢复已删除的远程分支

[英]How to recover a deleted remote branch

我们的远程主分支已删除。 我有一份主回购的本地副本,但有几个转速已经过时了。 我能够通过将最后一个已知的提交哈希插入到URL中来查看github中的分支,但是在恢复它时却没有成功。 我已经尝试了几个步骤来恢复它:

git reset --hard 16deddc05cb53dfaa2d198b1cf264416e19255e9
fatal: Could not parse object '16deddc05cb53dfaa2d198b1cf264416e19255e9'

git checkout 16deddc05cb53dfaa2d198b1cf264416e19255e9
fatal: reference is not a tree: 16deddc05cb53dfaa2d198b1cf264416e19255e9

可以理解,因为主人不再存在。 我有什么选择在这里恢复?

如果您不知道最新版本的哈希值,那么恢复它可能会失败。 也许您可以做的最好的事情就是将您备份的主分支推送到github。 由于修订已经在存储库中,因此它将是一个快速的网络操作。

如果你有ssh访问托管你的存储库的机器(你没有,在github上),那么你可以在git存储库中搜索孤儿。 孤儿是一个不再有引用的提交。 不幸的是,在这种情况下,这对你没有帮助。

有一些指针可以帮助您恢复丢失的提交,包括在这篇文章中找到孤儿的过程:

Git:恢复已删除的(远程)分支

  1. 获取确切的提交(以及其历史记录行中的所有内容):

     git fetch origin 16deddc05cb53dfaa2d198b1cf264416e19255e9 
  2. 用它创建一个分支:

     git branch xyzzy FETCH_HEAD 

您可以将其合并为一个步骤:

git fetch 16deddc05cb53dfaa2d198b1cf264416e19255e9:refs/heads/xyzzy

如果您确实知道最新丢失提交的哈希值,请尝试使用github的Web UI解决问题。 转到以下URL:

https://github.com/{username}/{repository}/compare/{hash}

应该出现一个按钮, Create pull request - 使用此按钮创建拉取请求并将历史记录合并回分支。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM