GIT -在不小心进入分离HEAD并做了一个错误的提交后丢失了所有的东西?

yeotifhr  于 2023-01-15  发布在  Git
关注(0)|答案(1)|浏览(271)

我不记得我做了什么,但我几个月来的工作都没了。很长一段时间我都在向git提交文件。我一定是拼错了commit命令,我不记得了(也看不到它了)。然后发生了下面的事情:
我在独立的头
我可能藏了些文件
我 checkout 到主分支,我发现我的提交,但在这个分支和最后提交几乎所有的东西都不见了。
在我的历史中

commit 2be5fe718cf6ed42250b7b190573b04300697b50 (HEAD, main)
Reflog: HEAD@{0} (...)
Reflog message: checkout: moving from main to 2be5fe718cf6ed42250b7b190573b04300697b50
Author: ...
Date:   Sat Jan 14 18:14:59 2023 +0100

     change getcloseststation to first select a line

commit 2be5fe718cf6ed42250b7b190573b04300697b50 (HEAD, main)
Reflog: HEAD@{1} (...)
Reflog message: commit: change getcloseststation to first select a line
Author: ...
Date:   Sat Jan 14 18:14:59 2023 +0100

     change getcloseststation to first select a line

commit a2f2d7c0f126e954606249bfc728cc930841dce1 (origin/main)
Reflog: HEAD@{2} (...)
Reflog message: checkout: moving from 804021e233b9edcbb68e08dae1a901d6fb23d3cc to main
Author: ...
Date:   Sat Sep 17 16:57:40 2022 +0200

我试着去那里做git stash pop(因为我认为我把它藏起来了),但是没有东西可以藏起来。我只有2个分支,分别是main和detached HEAD。
另外,在detached HEAD和main中,我只能看到4个月前的最后一次提交和另一条评论。所有其他的提交都消失了--在detached HEAD和main中...我害怕做更多的错误和完全松散的一切。我知道它不完全清楚发生了什么,但它是我所知道的一切。我会很感激帮助这么多,因为它太多了,我失去了...非常感谢!!!
当我在拷贝的repo上运行git log 2be 5 fe 718或gitk 2be 5 fe 718时,我只得到了以下的结果(4个月前的一次提交和今天的最后一次提交,但是所有的东西都不见了

commit 2be5fe718cf6ed42250b7b190573b04300697b50 (HEAD -> main)
Author: ...>
Date:   Sat Jan 14 18:14:59 2023 +0100

     change getcloseststation to first select a line

commit a2f2d7c0f126e954606249bfc728cc930841dce1 (origin/main)
Author: ...>
Date:   Sat Sep 17 16:57:40 2022 +0200

    checkout

编辑:

2be5fe71 (HEAD -> main) HEAD@{9}: commit: change getcloseststation to first select a line
a2f2d7c0 (origin/main) HEAD@{10}: checkout: moving from 804021e233b9edcbb68e08dae1a901d6fb23d3cc to main
804021e2 HEAD@{11}: commit: change getcloseststation to first select a line
suzh9iv8

suzh9iv81#

1.创建一个目录备份,以防出错。
1.使用git reflog查找丢失的提交。您可以使用git log $commit_hashgitk $commit_hash进行验证。
1.一旦你有了提交哈希,创建一个新的分支来指向那个提交:git branch $commit_hash_from_reflog

  1. checkout 或推送此新分支
    1.别忘了要快乐

相关问题