我只是删除了错误的分支,我需要用git branch -D branchName进行一些实验更改。

如何恢复分支?


当前回答

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

$ git checkout deletedBranchName

其他回答

这招对我很管用:

git fsck --full --no-reflogs --unreachable --lost-found
git show d6e883ff45be514397dcb641c5a914f40b938c86
git branch helpme 15e521b0f716269718bb4e4edc81442a6c11c139

如果你通过源树删除了一个分支,你可以通过查看>显示命令历史很容易找到被删除分支的SHA1。

它应该有下面的格式:

Deleting branch ...
...
Deleted branch %NAME% (was %SHA1%)
...

然后按照原来的答案。

branch branch <sha1>

首先,不要惊慌。你来对地方了。 继续,冠军,我们都会犯错!这就是我们学习的方式! 祝你健康、快乐、成功!

哦,等待答案!我想你已经知道了!

如果不是!这就是答案。

use git reflog
git checkout branch branch_name commitsha

为了进一步说明,在第二个命令中,branch_name是您想要给分支指定的名称。Commitsha是您要检查的sha号码。你可以从git reflog命令中获得。

再次快乐编码!

如果你使用Jetbrains IDE(Goland, phpstorm等)的GUI删除了一个分支

git窗口(IDE的左下角)->控制台选项卡->现在你可以看到IDE执行命令的日志,并从这个日志中找到分支名称和SHA1

首先:备份您的整个目录,包括.git目录。

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

第三:在丢失的提交上重新设置或合并。

第四:在git中使用-D或——force之前一定要三思:)

您还可以阅读这篇关于如何从此类错误中恢复的优秀讨论。

编辑:顺便说一下,不要运行git gc(或者允许它自己运行——也就是不要运行git fetch或类似的东西),否则你可能会永远失去你的提交。