如何撤消 'git update-ref -d refs/heads/master'?

How do I undo 'git update-ref -d refs/heads/master'?

我正在尝试重复 git 过滤器 b运行ch,最后留下一条消息说 refs/heads/master is unchanged。我读到这是因为备份已经存在所以我不得不摆脱它。所以我 运行 git update-ref -d refs/heads/master 现在没有提交了,我似乎无法撤消它。有什么建议么?

我通过阅读评论中的 this Stack Overflow question 和随后的 link 设法解决了这个问题: Recovering Git repository from objects only

  1. 使用git fsck查找悬空提交哈希列表

  2. vim 到你的 .git/refs/heads/master 这只是一个文本文件并输入代表你最新提交的可疑散列。

  3. 保存并返回根目录检查git日志,看看那是不是你最新的。如果没有,则系统地遍历步骤 1 中的哈希值,直到找到它。

  4. 找到后git checkout .所以git恢复到master分支的原始状态