在Git中恢复已删除的分支

时间:2013-05-28 13:42:22

标签: 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 demo1 to demo

我想用sha 06fa6d5创建分支...所以我尝试了这个:

git checkout -b demo  06fa6d5

git checkout -b demo  HEAD@{24}

但我没有从中得到代码...

2 个答案:

答案 0 :(得分:38)

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

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

答案 1 :(得分:1)

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