【问题标题】:How do I undo 'git update-ref -d refs/heads/master'?如何撤消“git update-ref -d refs/heads/master”?
【发布时间】:2018-04-27 23:26:50
【问题描述】:

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

【问题讨论】:

  • update-ref 子命令没有--delete 选项。您运行的确切命令是什么?
  • 我的意思是-d 删除了引用

标签: git undo


【解决方案1】:

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

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

  2. vim 进入你的 .git/refs/heads/master 这只是一个文本文件,然后输入代表你对 master 的最新提交的可疑哈希。

  3. 保存并返回根目录以检查 git 日志以查看它是否是您的最新版本。如果没有,则系统地检查第 1 步中的哈希值,直到找到为止。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 2018-12-25
    • 2019-05-09
    • 2012-11-02
    • 1970-01-01
    相关资源
    最近更新 更多