我只是删除了错误的分支一些实验性的变化,我需要有git branch -D branchName
。
如何恢复分支?
我只是删除了错误的分支一些实验性的变化,我需要有git branch -D branchName
。
如何恢复分支?
您可以使用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
如果你知道该分支的最后SHA1,你可以试试
git branch branchName <SHA1>
您可以通过找到SHA1 git reflog
,在该解决方案中描述这里 。
如果你还没有推删除的是,你可以简单地做:
$ git checkout deletedBranchName
如果你刚刚删除的分支,你会看到在你的终端是这样的:
Deleted branch branch_name(was e562d13)
- 其中e562d13是一个唯一的ID(也称为“SHA”或“哈希”),有了这个就可以恢复被删除的分支。
要恢复分支,使用:
git checkout -b <branch_name> <sha>
例如 :
git checkout -b branch_name e562d13
第一:备份整个目录,包括.git目录。
第二:你可以使用git fsck --lost-found
获得丢失提交的ID。
第三:重订或合并到丢失的承诺。
第四:凡事三思而后使用-D之前或与GIT --force :)
你也可以阅读本很好的讨论如何从这种错误中恢复。
编辑:顺便说一下,不要运行git gc
(或允许其通过自身运行-即不运行git fetch
或任何类似),或者你可能会失去你的提交,直到永远。
谢谢,这个工作。
git的分支new_branch_name
sha1
git的结帐new_branch_name
//可以看到我的老文件中检查了我的老枝