Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Git中恢复已删除的分支_Git_Git Branch - Fatal编程技术网

在Git中恢复已删除的分支

在Git中恢复已删除的分支,git,git-branch,Git,Git Branch,我错误地删除了我的分支,如下所示: git branch -D demo 但是我想恢复它…我在git reflog 541b2f5 HEAD@{23}: checkout: moving from demo to master 06fa6d5 HEAD@{24}: commit (merge): remove ajax call for deleting variables and transfomers b84b60a HEAD@{25}: checkout: moving from dem

我错误地删除了我的分支,如下所示:

git branch -D demo
但是我想恢复它…我在
git reflog

541b2f5 HEAD@{23}: checkout: moving from demo to master
06fa6d5 HEAD@{24}: commit (merge): remove ajax call for deleting variables and transfomers
b84b60a HEAD@{25}: checkout: moving from demo1 to demo
我想用sha
06fa6d5
创建分支,所以我尝试了以下方法:

git checkout -b demo  06fa6d5

git checkout -b demo  HEAD@{24}

但是我没有从中获得代码…

在获得分支
演示的最后一个提示的潜在sha1后,使用
gitk sha1
实际浏览提交的历史记录,以检查是否有正确的提交。

创建所有悬空或无法访问的提交的列表

git fsck --full --no-reflogs --unreachable --lost-found
打印失物招领系统中所有提交的提交消息列表

ls -1 .git/lost-found/commit/ | xargs -n 1 git log -n 1 --pretty=oneline
通过手动检查(即阅读)过程查找您丢失的提交。 创建一个新分支,将缺少的提交作为分支头

git checkout -b branch-name SHA

您的命令是正确的,应该可以工作。您的问题缺少详细信息。看起来此问题已解决。对于这种情况,我真的很喜欢这个答案:太棒了。我是在windows上用mysisgit做的。由于失物招领目录不在任何合理的位置,因此必须稍微更改流程。我获取了
git fsck…
的输出,并检查了每个
commmit
的SHA(而不是blob或tree)通过使用
git log SHA
我也对它进行了调整:
git fsck--full--no reflogs--unreable--lost-found--lost-found | grep commit | cut-d-f3 | xargs-n1 git log-n1----pretty=oneline>.git/lost-found.txt
Philippe的oneline命令在git bash for windows中对我起了作用。我只需在“cut-d \-f3”中的-d\之后添加一个额外的空格(由于格式删除了重复的空格,因此无法在注释中显示)