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


当前回答

仅仅使用git-relog并没有为我返回sha。只有提交id(8个字符长,sha长得多)

所以我用git-relog--无缩写

然后执行上述操作:git checkout-b<branch><sha>

其他回答

如果您已经将分支推送到远程服务器,那么尝试使用git checkout<branch>,git将尝试从本地计算机中的最后一个源镜像进行克隆。

添加到tfe答案:git源代码的contrib/区域(在git.git存储库中)中还有git-resurrect.sh脚本,这可能会对您有所帮助。

git restore<name>尝试查找分支提示的痕迹调用<name>,并尝试恢复它。当前,reflog是搜索签出消息,并使用-r合并消息。具有-m和-t,将扫描所有ref的历史记录,以便将<name>合并到other/将<other>合并到<name>中(分别)提交主题很慢,但可以让你重新提起别人的话题分支。

确保在本地执行所有这些操作,并在推送到Bitbucket云之前确认您的回购处于所需状态。克隆当前的回购协议,并首先测试这些解决方案可能也是一个好主意。

如果您刚刚删除了分支,您将在终端中看到类似的内容:

    Deleted branch <your-branch> (was <sha>)

2.要恢复分支,请使用:

    git checkout -b <branch> <sha>

如果你不知道头顶上的“sha”,你可以:

使用以下方法在已删除分支的末端查找提交的“sha”:

    git reflog

要恢复分支,请使用:

    git checkout -b <branch> <sha>

如果您的提交不在reflog中:

您可以尝试通过使用以下命令将分支重新设置为提交的sha来恢复分支:

    git fsck --full --no-reflogs --unreachable --lost-found | grep commit | cut -d\  -f3 | xargs -n 1 git log -n 1 --pretty=oneline > .git/lost-found.txt

2.然后可以使用以下选项之一显示每个提交:

    git log -p <commit>
    git cat-file -p <commit>

首先转到git批处理项目,如:

cd android studio project
cd Myproject
then type :
git reflog

你们都有一个更改列表,参考号取参考号,然后从android studio或git betcha结账。另一个解决方案是获取参考号,然后转到android工作室,单击git分支,然后单击签出标签或参考号之后的修订,然后lol您就有了分支。

如果您使用的是Git扩展

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

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

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