恢复已删除的未合并分支

时间:2014-06-10 03:04:02

标签: git

我找到了一些关于如何使用

恢复git分支的解决方案
  1. git reflog
  2. git fsck
  3. 我无法从已删除的分支或任何删除此分支的历史记录中获得某些提交。

    本地分支尚未合并到我的主分支中并被意外删除。有可能恢复吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:6)

你可以从:

开始
git reflog | grep 'to branchname'

这将匹配如下所示的reflog行:

219daf7 HEAD@{20}: checkout: moving from master to branchname

您可以使用git checkout 219daf7来查看并确保它是正确的提交,或者我建议tig浏览您的存储库,您可以使用tig 219daf7查看来自的历史记录提交。 (请记住git checkout会在您的reflog中添加条目,而tig则不会。)

一旦您对找到正确的提交感到满意,您可以使用以下内容再次创建分支:

git checkout -b branchname 219daf7

如果失败,你可以使用fsck方法:

git fsck --full --no-reflogs --unreachable --lost-found | grep commit

这将列出所有已删除的提交:

unreachable commit 219daf70a24e635cd95c1493c341585bbf64a61d

然后,您可以按照与上述相同的方式使用提交ID。