我错误地删除了我的分支:
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}
但我没有从中得到代码...
答案 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
实际浏览提交的历史记录以检查您是否拥有正确的。