删除.git文件夹

时间:2017-05-23 15:28:59

标签: git git-bash

我正在尝试从现有目录推送到存储库,因此我使用

添加了所有文件
git add -A

然后我意识到我不应该添加节点模块文件夹,所以我做了

git reset --hard

然后我决定一个接一个地添加文件夹,我意识到我应该首先制作.gitignore文件,所以我决定使用

删除我文件夹中的所有git关系
rm -rf .git

使用

重新初始化当前文件夹后
git init

当前目录中缺少太多文件。我没有任何项目备份。关于如何恢复文件的任何想法?

1 个答案:

答案 0 :(得分:2)

如果您没有备份,并且您的操作系统没有执行"软删除" (垃圾桶,回收站,无论如何)或者你以绕过它们的方式删除,然后没有可靠的方法来恢复工作。

.git目录包含 git知道的所有文件,而不是未跟踪文件或工作树中的更改。删除.git/几乎从来没有必要而且非常危险,因为这个问题不幸地说明了。您使用的其他命令也比您需要的命令更具攻击性/危险性,并且您很可能在此过程中很早就丢失了工作文件。对不起,这个消息不是更好。

供将来参考:

reset --hard很可能删除了您的工作文件。您已经完成了一些添加并希望还原它们,因此mixed重置(这是默认设置)就足够了,并且会使您的工作树单独使用。硬重置会将工作树恢复为已提交状态(以及索引)。

重置后,您再次开始add s。我想当你不得不第二次开始时,你担心你可能会让git累积不需要的状态。它不是。另一个mixed重置会很好。您始终可以使用git status来确保索引不包含任何意外内容(如果是,则将其清除)。

唯一持久的记录是数据库中的内容,因为您还没有提交任何内容,但您还没有影响数据库。即使你已经提交了你想放弃的东西,只要这些东西没有与他人分享,就会有摆脱它们的程序。

通常git非常擅长保护您的数据,但它无法保护您尚未承诺的内容;因此要求它使用对工作树具有破坏性的命令,或者对存储库和元数据进行核对(通过删除.git/)只有在您非常确定的原因时才应该这样做你正在做它们。