Git撤消本地分支删除
我刚刚删除了一些实验性的改变,我需要用git branch -D branchName
删除错误的分支。
我如何恢复分支机构?
您可以使用git reflog来查找分支上次提交的SHA1。 从这一点上,你可以使用重新创build一个分支
git branch branchName <sha1>
编辑:正如@ seagullJS所说, branch -D
命令告诉你sha1,所以如果你还没有closuresterminal,那真的很容易。 例如,这将删除并立即恢复名为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>
你可以使用git reflog
findSHA1,在这里的解决scheme中描述。
如果您还没有推删除,您可以简单地做:
$ git checkout deletedBranchName
如果你刚刚删除了分支,你会在terminal上看到类似这样的东西:
Deleted branch branch_name(was e562d13)
要恢复分支,请使用:
git checkout -b <branch_name> <sha>
例如 :
git checkout -b branch_name e562d13
首先:备份整个目录,包括.git目录。
第二:你可以使用git fsck --lost-found
来获取丢失提交的ID。
第三:rebase或合并到失落的提交。
第四:在使用-D或者–force和git之前总是三思而行:)
你也可以阅读这个关于如何从这种错误中恢复的良好讨论 。
编辑:顺便说一句,不要运行git gc
(或允许它自己运行 – 即不运行git fetch
或类似的东西),否则你可能会失去你的提交永远。
谢谢,这工作。
git分支new_branch_name
sha1
git checkout new_branch_name
//可以在我的旧分支中看到我的旧签入文件