如果我运行gitbranch-d XYZ,是否有方法恢复该分支?有没有办法像我没有运行delete branch命令一样返回?


当前回答

如果您想使用GUI,可以使用gitk执行整个操作。

gitk --reflog

这将允许您查看分支的提交历史,就像该分支未被删除一样。现在只需右键单击分支的最近提交,然后选择菜单选项“创建新分支”。

其他回答

要恢复已删除的分支,请首先查看reflog历史记录,

git reflog -n 60

其中n表示最后n次提交。然后找到合适的头部并用该头部创建一个分支。

git branch testbranch HEAD@{30}

我使用以下命令来查找和检索已删除的分支。第一步来自gcb的描述。

$ git fsck --full --no-reflogs --unreachable --lost-found > lost
$ cat lost | cut -d\  -f3 > commits
$ cat commits | xargs -n 1 git log -n 1 --pretty=oneline

现在根据提交注释查找gitcommit-id(git-SHA),并在下面的命令中使用它。使用之前找到的GIT-SHA签出一个名为new-branch的新分支:

$ git checkout -b NEW-BRANCH GIT-SHA

大的是

如果您正在使用GIT遵循以下简单步骤https://confluence.atlassian.com/bbkb/how-to-restore-a-deleted-branch-765757540.html

如果您正在使用smartgit并已经推送该分支转到原点,找到该分支,然后右键单击,然后签出

如果您使用的是Git扩展

虽然很旧,但当您在google恢复已删除的分支时,此线程是列表的顶部。我使用的是git扩展而不是命令行,所以我不熟悉这些命令,但reflog命令给了我一个线索,所以我在这里发布了我的git扩展解决方案,供其他使用git扩展的人阅读。

转到工具栏上的视图下拉列表选择Show reflog references

您删除的分支现在应该可以查看和选择,只需单击它并将其签出即可。

我在删除分支的计算机上执行此操作:

数字刷新

响应:

74b2383 (develope) HEAD@{1}: checkout: moving from master to develope
40ef328 (HEAD -> master, origin/master, origin/HEAD) HEAD@{2}: checkout: moving from develope to master
74b2383 (develope) HEAD@{3}: checkout: moving from master to develope
40ef328 (HEAD -> master, origin/master, origin/HEAD) HEAD@{4}: reset: moving to HEAD
40ef328 (HEAD -> master, origin/master, origin/HEAD) HEAD@{5}: clone: from http://LOCALGITSERVER/myBigProject/Android.git

并且我使用以下命令检索分支:

git checkout-b newBranchName 74b2383