【发布时间】:2017-10-25 15:12:02
【问题描述】:
我经常提交我的更改
git add *
和
git commit -m "message"
我发现分支有两个星期,所以我在该分支中创建了一个分支和代码。现在我执行git checkout master,我丢失了很多文件(分支创建之前的文件已被删除)
这是毁了1年的工作。
检查分支 master 后,我的名为 test 的分支被删除了(我不知道这怎么可能)
我已经用 recuva 彻底检查了文件分配器。
(对不起我的英语不好)
由@underscore_d 解决:
1) git reflog
我获得了最后一个 HEAD 的列表
c92fba6 HEAD@{0}: checkout: moving from bc679831379ae324856d02492aecdeb0abffff8d
to master
bc67983 HEAD@{1}: commit: bug fixe #32
fcaccea HEAD@{2}: commit: bug fixe #31
009579a HEAD@{3}: commit: bug fixe #30
所以我输入
2) git checkout bc67983
然后我把我所有的文件都拿回来了。
【问题讨论】:
-
我也有 git gui 和 git gui 说一切都很好。点表示本地文件夹,星号表示文件夹中的所有文件。
-
checkout不太可能删除之前的HEAD分支,或者您之前添加到git的对象现在立即丢失并且不再被一些分支或悬空提交。发布git branch的输出和git reflog的(前25 行左右)。 -
非常感谢@underscore_d 的回复,我可以将您标记为已接受。我正在编辑我的原始帖子以解释我如何解决它
-
你现在应该做的是
git reset某个分支指向你正在恢复的最新提交,否则我认为你仍然会在detached HEAD上并且可能会进入稍后再次出现同样的问题...
标签: git