如何恢复在提交任何内容之前意外删除的git存储库

时间:2018-09-22 19:43:05

标签: git

我决定第一次尝试GitHub,并已经设法在玩耍的同时删除了我最重要的项目中的所有文件。这是我的控制台历史记录:

APP_URL=http://192.168.1.134:8088

我搜索了许多方法来恢复此错误。推荐的一个是: <form action="#" th:action="@{/nuovo-utente}" th:object="${nuovoUtente}" method="post"> ,但只会返回:

git init
git remote add origin https://github.com/...
git add .
git config --global user.email (...)
git config --global user.name (...)
git reset --hard   // amazing move by me

,没有斑点。那么,没有希望恢复它了吗?

1 个答案:

答案 0 :(得分:3)

这很奇怪,因为除非进行了提交,否则/main/secondary/amissing tree不会发生。是dangling tree根据索引(或git git write-tree构建树对象,但这很难使用)。 (好吧,丢失的树是empty tree-我认为哈希ID听起来很熟悉!-这样就少了几分。)

不过,到目前为止,悬挂树对象可能就是您的blob哈希ID。在其上使用hash-object -w -t treegit show来获取文件名和Blob哈希ID,然后在每个Blob ID上使用git ls-tree -rgit show来获取文件的内容并存储这些内容在树上找到的名称下。

或者,您可以使用eftshift0's trick:将悬垂的树变成提交的树。更好/更方便。 (eftshift0应该将其转变为答案,您应该接受:-))