恢复几个月前删除的Git分支

时间:2016-03-03 17:23:20

标签: git branch restore

我几个月前删除了一个分支,认为我的项目不再需要它。事实证明,现在,几个月后,它实际上又需要了。不幸的是我在当地没有它......

有没有办法可以恢复它?

编辑:删除分支后我克隆了repo,所以我相信reflog无法帮助我。

我也试过了“复活”http://repo.or.cz/w/git.git/blob/HEAD:/contrib/git-resurrect.sh,它没有向我展示分支。

编辑#2:这些都是很好的答案,但我想我搞砸了。自从我重新克隆以来,reflog对我没有任何帮助,它是一个独立的分支,它不在远程服务器上,没有其他人在本地拥有它。

我想我只会改写它......

3 个答案:

答案 0 :(得分:1)

是的,您可以在git中恢复已删除的分支。

首先,运行git reflog并在已删除分支的顶端找到提交的 SHA1

然后只需git checkout -b <branchname> <sha>重新创建分支及其历史记录。

答案 1 :(得分:1)

如果出现以下选项之一,您可以恢复分支:

(指定是否有任何相关的内容并且相应地更新答案)

  • 如果您已将分支合并到其他分支
  • 您将它存储在您的仓库本地(这意味着在此期间没有运行gc)
  • 您在远程服务器上拥有它
  • 其他人在他的回购中拥有它
  • 你知道你正在寻找哪个文件,这将允许我解释如何搜索git blob寻找它。

平均而言,看看这里有更多想法: How to move HEAD back to a previous location? (Detached head)

答案 2 :(得分:1)

您可以尝试git reflog并找到已删除分支的最新提交哈希值吗?
获得提交哈希后,请执行git reset --hard <commit> 这会将HEAD恢复为分支上的最新提交。
再次重新创建分支并结帐到新分支git checkout -b <branchname>
然后按分支git push origin <branchname>

我在https://confluence.atlassian.com/stashkb/how-to-restore-a-deleted-branch-744723130.html

的Atlassian知识库中找到了这个

我希望这会有所帮助