Git 恢复意外丢弃的未提交文件
我意外地放弃了所有未提交的更改。我做了git reflog秀Git 恢复意外丢弃的未提交文件,git,Git,我意外地放弃了所有未提交的更改。我做了git reflog秀 f1bb72c头@{0}:丢弃:[1d5f4f1a481165c24a46addbef7d74a5de3ff9c6] 我怎样才能找回它 如果这些文件根本没有添加到Git中(如果您没有执行Git add),那么Git对这些文件一无所知。所以你不能让他们复活 如果您将文件添加到Git中,但意外地删除了它们,并将索引更新为目录的当前状态,那么您将很难找到文件。问题是-虽然文件在Git中,但您当前的历史记录中没有对它们的引用,您所拥有的只是压
f1bb72c头@{0}:丢弃:[1d5f4f1a481165c24a46addbef7d74a5de3ff9c6]
我怎样才能找回它 如果这些文件根本没有添加到Git中(如果您没有执行Git add),那么Git对这些文件一无所知。所以你不能让他们复活 如果您将文件添加到Git中,但意外地删除了它们,并将索引更新为目录的当前状态,那么您将很难找到文件。问题是-虽然文件在Git中,但您当前的历史记录中没有对它们的引用,您所拥有的只是压缩Git对象的数量 但如果这些文件对你来说如此珍贵,我会这样做:
- 在
目录中查找从现在到添加时的某个已知日期之间创建的所有文件(忽略.git/objects
和info
dirs)pack
- 检查每个git对象(连接目录的2个符号和文件的38个符号),然后执行
直到找到blob为止。如果您记住了这些文件中的一些独特单词,则可以使用git cat-p[hash]
grep
- 如果您曾经提交过一些更改,并且丢失了该提交(如在分离状态下提交),您可以使用
找到该提交。看这个*reflog
- 如果您丢失了上一次更改的阶段,您也可以恢复。看这个*。(我本人从未使用过或尝试过)
- 如果隐藏了更改,也可以使用
或pop
恢复更改。(我不确定弹出/丢弃的存储是否也可以恢复未提交的存储)。你可能会发现这很有用apply
如果有任何人可以建议任何其他方法,我会进一步编辑此答案以添加它们 这些文件是以前添加的。我对文件所做的更改已被删除。因此,这将取决于您是否添加了这些更改。的可能重复项请勿从其他地方复制内容(),但没有明确的属性。这被视为剽窃。看见