我只是删除了错误的分支,我需要用git branch -D branchName进行一些实验更改。
如何恢复分支?
我只是删除了错误的分支,我需要用git branch -D branchName进行一些实验更改。
如何恢复分支?
当前回答
你可以使用git reflog找到分支最后一次提交的SHA1。从这一点开始,您可以使用
git branch branchName <sha1>
编辑:正如@seagullJS所说,分支-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。
它应该有下面的格式:
Deleting branch ...
...
Deleted branch %NAME% (was %SHA1%)
...
然后按照原来的答案。
branch branch <sha1>
如果您知道分支的最后一个SHA1,您可以尝试一下
git branch branchName <SHA1>
您可以使用git reflog找到SHA1,在解决方案—缺陷链接—中有描述。
如果你正在使用IntelliJ IDEA,在事件日志中你会看到这样的东西:
并可能简单地恢复您的分支。
这招对我很管用:
git fsck --full --no-reflogs --unreachable --lost-found
git show d6e883ff45be514397dcb641c5a914f40b938c86
git branch helpme 15e521b0f716269718bb4e4edc81442a6c11c139
你可以使用git reflog找到分支最后一次提交的SHA1。从这一点开始,您可以使用
git branch branchName <sha1>
编辑:正如@seagullJS所说,分支-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