【问题标题】:Can I recover a deleted git branch which I did not save locally?我可以恢复我没有在本地保存的已删除 git 分支吗?
【发布时间】:2021-09-13 12:37:02
【问题描述】:

我使用命令从我的服务器中删除了一个 git 分支

git push origin :feature-my-branch

我没有在本地签出/保存分支。有什么方法可以恢复这个分支还是永远消失了?

当我这样做时

git branch --all

我看不到 feature-my-branch。当我这样做时

git reflog --no-abbrev 

我找不到 feature-my-branch 的提示。

【问题讨论】:

  • 我猜这可能取决于远程托管服务。你知道分支引用的提交的哈希吗?
  • 您使用什么托管服务?如果您有权访问服务器计算机,则可以登录服务器并在服务器存储库中尝试git fsck --dangling。它打印悬挂的物体。提示提交可能在其中。该提示也可能被其他 ref 引用,因此您可以尝试 git for-each-ref 列出所有 ref 并检查它们的任何头部或祖先是否是提交。
  • 你在删除之前获取了吗?
  • @Alex028502 我们知道他没有基于他的git branch --allgit reflog --no-abbrev 结果。
  • 我只是在 github 上尝试过,即使我再次克隆整个 repo,哈希也不存在。我以为origin会在删除分支后保留散列,然后它会随克隆一起出现。真是太糟糕了,它可以让你删除你看不到的东西

标签: git branch recovery data-recovery


【解决方案1】:

我设法恢复了我的分支

git fsck --dangling

在那里我发现了一个悬空提交,它是 feature-my-branch 的负责人。然后我恢复了 feature-my-branch 并推送到服务器:

git branch feature-my-branch <commit-id>
git push origin feature-my-branch

【讨论】:

    猜你喜欢
    • 2015-11-06
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    相关资源
    最近更新 更多