如果您没有备份,并且您的操作系统不会执行“软删除”(垃圾桶,回收站,无论)还是以绕过它们的方式删除,那么没有可靠的方法来恢复工作。
.git
目录包含有关您的文件的所有内容,除了未跟踪的文件或工作树中的更改外,所有的一切git都知道。删除.git/
几乎是不必要的,非常危险,因为这个问题不幸说明了。您使用的其他命令也比您需要的更具侵略性/危险性,而且您很可能在流程的早期就丢失了工作文件。对不起,这个消息并不好。
以供将来参考:
这是可能的reset --hard
就是删除你的工作文件。你已经做了一些添加并想恢复它们,所以mixed
重置(这是默认设置)本来就足够了,并且会让你的工作树单独存在。硬重置将您的工作树恢复到提交状态(以及索引)。
重置之后,你又开始做add
秒。我想,当你不得不重新开始时,你担心你可能会积聚不需要的状态。事实并非如此。另一个mixed
重置会很好。您始终可以使用git status
来确保索引不包含意外的任何内容(如果是这样,请将其清除)。
唯一持久的记录是什么在数据库中,因为你没有犯了什么你不影响数据库呢。即使你犯了你想丢弃的东西,只要这些东西没有与其他人分享,那么就有程序来摆脱它们。
一般Git是在保护你的数据非常好,但它不能保护你有没有犯什么;所以要求它使用的是具有破坏性向工作树的命令,或的摧毁仓库和元数据(通过删除.git/
)只应做,如果你是你为什么这样做他们非常肯定。
将'.git /'从垃圾箱中取出 – Brian
嗨@Brian不幸的是它不在我的回收站中。 –
'git pull master origin'来抓取当前的提交。始终考虑提交任何重大更改,然后可以返回到'git log'和'git reset --hard [commit_ID]'。 –