我意外丢弃了所有未提交的更改。我做了git reflog show
。恢复意外丢弃的未提交文件
f1bb72c [email protected]{0}: discard: [1d5f4f1a481165c24a46addbef7d74a5de3ff9c6]
我怎么能恢复呢?
我意外丢弃了所有未提交的更改。我做了git reflog show
。恢复意外丢弃的未提交文件
f1bb72c [email protected]{0}: discard: [1d5f4f1a481165c24a46addbef7d74a5de3ff9c6]
我怎么能恢复呢?
如果文件没有被添加到Git(如果你没有做git add
),那么Git根本就不知道这些文件。所以你将无法复活它们。
如果您将文件添加到Git但意外删除它们并更新索引到目录的当前状态,您将很难找到您的文件。问题是 - 当文件在Git中时,当前的历史记录中没有对它们的引用,只有压缩的git对象的数量。
但是,如果这些文件是如此珍贵的你,我应该这样做:
.git/objects
目录中的所有文件(忽略info
和pack
迪尔斯)。git cat -p [hash]
,直到找到blob。如果您记住这些文件中的某些独特单词,则可以使用grep
。该文件之前添加。我对文件所做的更改已被删除。 – suku
所以这取决于你是否添加了这些变化。 –
如果您还没有COMMITED,上演,或藏您所做的更改,有没有办法可以恢复这些更改。
编辑:恢复丢失的变化。在Mark Longair's建议(在评论中)上添加此项。这也包括从他的答案(*)中的几个SO链接,我发现相当丰富。
如果你曾经致力于一些变化,已经失去了承诺(如在分离状态提交),你可以发现,使用提交reflog
。看到这SO question *。
如果你已经失去了你最后的上演改变,你也可以恢复。请参阅SO question *。 (我从未使用过或自己尝试过)。
如果您藏的变化,你也可以恢复使用pop
或apply
。 (我不确定弹出/丢弃的窗口是否也可以恢复,但没有提交)。你可能会发现这个Recover dropped stash in git有用。
如果有任何其他方法,任何人都可以建议,我会编辑这个答案进一步添加它们。
不要复制其他地方的内容(https://stackoverflow.com/a/7147749/444991)而没有明确的归属。它被视为剽窃。请参阅http://stackoverflow.com/help/referencing – Matt
可能重复[意外恢复到主,丢失未提交的更改](https://stackoverflow.com/questions/7147680/accidentally-reverted-to-master-lost-uncommitted-changes) – LuFFy