26

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

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}

但我没有从中得到代码……</p>

4

2 回答 2

40

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

git fsck --full --no-reflogs --unreachable --lost-found

为 lost and found 中的所有提交打印提交消息列表。

ls -1 .git/lost-found/commit/ | xargs -n 1 git log -n 1 --pretty=oneline

通过手动检查(即阅读)的过程找到您丢失的提交。使用缺少的提交创建一个新分支作为分支头。

git checkout -b branch-name SHA
于 2013-05-29T11:59:13.973 回答
1

在获得了 branch 的最后一个提示的潜在 sha1 后demogitk sha1用于实际浏览提交的历史记录以检查您是否拥有正确的历史记录。

于 2013-05-28T20:09:51.233 回答