Git的撤销地方分支删除Git的撤销地方分支删除(Git undo local branch del

2019-05-12 19:21发布

我只是删除了错误的分支一些实验性的变化,我需要有git branch -D branchName

如何恢复分支?

Answer 1:

您可以使用git的引用日志找到最后的SHA1提交的分支。 从这一点来说,你可以重新使用一个分支

git branch branchName <sha1>

编辑:作为@seagullJS说,该branch -D命令告诉你SHA1,因此,如果您还没有关闭终端尚未成为真正的轻松。 例如,这将删除,然后立即恢复一个分支命名master2

user@MY-PC /C/MyRepo (master)
$ git branch -D master2
Deleted branch master2 (was 130d7ba).    <-- This is the SHA1 we need to restore it!

user@MY-PC /C/MyRepo (master)
$ git branch master2 130d7ba


Answer 2:

如果你知道该分支的最后SHA1,你可以试试

git branch branchName <SHA1>

您可以通过找到SHA1 git reflog ,在该解决方案中描述这里 。



Answer 3:

如果你还没有推删除的是,你可以简单地做:

$ git checkout deletedBranchName


Answer 4:

如果你刚刚删除的分支,你会看到在你的终端是这样的:

Deleted branch branch_name(was e562d13)
  • 其中e562d13是一个唯一的ID(也称为“SHA”或“哈希”),有了这个就可以恢复被删除的分支。

要恢复分支,使用:

git checkout -b <branch_name> <sha>

例如

git checkout -b branch_name e562d13 


Answer 5:

第一:备份整个目录,包括.git目录。

第二:你可以使用git fsck --lost-found获得丢失提交的ID。

第三:重订或合并到丢失的承诺。

第四:凡事三思而后使用-D之前或与GIT --force :)

你也可以阅读本很好的讨论如何从这种错误中恢复。

编辑:顺便说一下,不要运行git gc (或允许其通过自身运行-即不运行git fetch或任何类似),或者你可能会失去你的提交,直到永远。



Answer 6:

谢谢,这个工作。

git的分支new_branch_name sha1

git的结帐new_branch_name

//可以看到我的老文件中检查了我的老枝



文章来源: Git undo local branch delete