在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
我想用sha06fa6d5
创建分支,所以我尝试了以下方法:
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\之后添加一个额外的空格(由于格式删除了重复的空格,因此无法在注释中显示)