Git重置为以前的提交,但我可以';我再也找不到一些文件了

Git重置为以前的提交,但我可以';我再也找不到一些文件了,git,Git,因此,我在本地进行了一些提交,没有推送任何内容,并且在某一点上删除了一些文件并提交了这些文件。在其他一些提交之后,我决定使用一系列的git reset HEAD~1回滚 我可能在重置时做得太过火了,没有通过删除文件的实际提交(我一直在重置,因为我还没有看到任何文件)。现在我到了这一点:最新的提交是在文件仍然存在的时候进行的,但我仍然没有看到磁盘上的任何更改。我可以执行哪些操作来恢复该数据 签出最新推送将不起作用,因为这些文件从未被推送过一次 bernardo@MS-7821 ➜ agora g

因此,我在本地进行了一些提交,没有推送任何内容,并且在某一点上删除了一些文件并提交了这些文件。在其他一些提交之后,我决定使用一系列的
git reset HEAD~1
回滚

我可能在重置时做得太过火了,没有通过删除文件的实际提交(我一直在重置,因为我还没有看到任何文件)。现在我到了这一点:最新的提交是在文件仍然存在的时候进行的,但我仍然没有看到磁盘上的任何更改。我可以执行哪些操作来恢复该数据

签出最新推送将不起作用,因为这些文件从未被推送过一次

bernardo@MS-7821 ➜  agora git:(main) ✗ git reset HEAD~1
Unstaged changes after reset:
M   .gitignore
D   include/agora/cluster_launcher.hpp
D   include/agora/doe_launcher.hpp
D   include/agora/launcher.hpp
D   include/agora/model_launcher.hpp
D   src/cluster_launcher.cpp
D   src/doe_launcher.cpp
D   src/launcher.cpp
M   src/main.cpp
D   src/model_launcher.cpp
bernardo@MS-7821 ➜  agora git:(main) ✗ git reset HEAD~1
Unstaged changes after reset:
D   include/agora/cluster_launcher.hpp
D   include/agora/doe_launcher.hpp
D   include/agora/launcher.hpp
D   include/agora/model_launcher.hpp
D   include/agora/prediction_launcher.hpp
D   src/cluster_launcher.cpp
D   src/doe_launcher.cpp
D   src/launcher.cpp
M   src/main.cpp
D   src/model_launcher.cpp
bernardo@MS-7821 ➜  agora git:(main) ✗ git reset HEAD~1
Unstaged changes after reset:
M   .gitignore
D   include/agora/cluster_launcher.hpp
D   include/agora/doe_launcher.hpp
D   include/agora/launcher.hpp
D   include/agora/model_launcher.hpp
D   src/cluster_launcher.cpp
D   src/doe_launcher.cpp
D   src/launcher.cpp
M   src/main.cpp
D   src/model_launcher.cpp
bernardo@MS-7821 ➜  agora git:(main) ✗ git reset HEAD~1
Unstaged changes after reset:
M   .gitignore
M   src/main.cpp
这里是reflog:

bafed80 (HEAD -> main) HEAD@{0}: reset: moving to HEAD~1
6efd3d2 HEAD@{1}: reset: moving to HEAD~1
2e9f946 HEAD@{2}: reset: moving to HEAD~1
84fb144 HEAD@{3}: reset: moving to HEAD~1
a86f71b HEAD@{4}: reset: moving to HEAD~1
356f96e HEAD@{5}: reset: moving to HEAD~1
c97b4f3 HEAD@{6}: commit: Launcher now has several specialization based on plugin type.
356f96e HEAD@{7}: revert: Revert "Launcher now has several specialization based on plugin type."
a86f71b HEAD@{8}: commit: Updated.
84fb144 HEAD@{9}: revert: Updated.
2e9f946 HEAD@{10}: commit (amend): Updated.
884ff20 HEAD@{11}: commit: Updated.
6efd3d2 HEAD@{12}: commit: Launcher now has several specialization based on plugin type.
bafed80 (HEAD -> main) HEAD@{13}: commit: First commit.
ed3de67 HEAD@{14}: commit: Added filesystem path support plus other major improvements.
048f777 HEAD@{15}: commit: Added doe support plus major improvements.
528f0e0 HEAD@{16}: commit: Added MQTT support plus headers/sources updates.
e803b87 (origin/main, origin/HEAD) HEAD@{17}: commit: CSV handler definitions filesystem support.

中间提交仍将在reflog中提到:

$git reflog
#样本回购的输出示例:
9af391f(磁头->主机)磁头@{0}:重置:移动到磁头~1
e2a2eb4头@{1}:重置:移动到头~1
3654bb5磁头@{2}:重置:移动到磁头~1
3e631d8头@{3}:提交:f.txt
3654bb5头@{4}:提交:d.txt
e2a2eb4头@{5}:提交:e.txt
9af391f(HEAD->master)HEAD@{6}:commit:d.txt
ec80969头@{7}:签出:从side1移动到master
8d91c68(side1)HEAD@{8}:commit:d.txt
2c2f479头@{9}:commit:c.txt
ec80969头@{10}:签出:从主控移动到侧控1
...
如果您仍然处于您在问题中描述的确切情况:包含文件的最后一次提交应该是被称为
HEAD@{1}
的提交。复制哈希并将其用作目标:

#如果要重置回该提交:
git复位e2a2eb4
#如果要获取该提交中包含的文件,请执行以下操作:
git签出e2a2eb4--。

检查您的reflog:
git reflog
我已经添加了reflog。我很困惑,因为我指向了正确的校验和,但我没有看到磁盘上的文件。在您的磁盘上,文件从一开始就丢失了(所有文件都以
D
status)列出),b。您最终进行了一次提交,其中文件不再是提交的一部分(文件不再列出)。如果您想要回文件:您可能想使用
git签出--/files/I/need
是的,我缺少的是以下
签出
。谢谢你的帮助。我知道这只是一个小问题,但我刚刚开始接触git,有时可能会有点棘手。当我学习git命令时,有一个词没有出现在我脑海中,那就是“小问题”;)我学到了很多东西的一个来源:官员。我想你已经有了一些使用git的经验,这本书将给你很多关于如何在引擎盖下工作的见解。无论如何,我迟早会查出来的。再次感谢!