git reset——当文件被添加到暂存区域但不在存储库中时,hard将使源代码永久丢失

git reset——当文件被添加到暂存区域但不在存储库中时,hard将使源代码永久丢失,git,git-reset,Git,Git Reset,我将一些新文件添加到索引中 git add . 然后重置 git reset --hard git在我的工作树中删除了这些文件,以前在存储库中没有,它们都丢失了。我丢失了所有数据。来自git文档: --硬重置索引和工作树。对工作树中的跟踪文件所做的任何更改都将被丢弃 因此,这完全符合文件规定。你可能想这么做 git reset 没有--硬选项 查看是否要尝试恢复代码。请参阅。您仍然可以找到添加文件的内容。但是目录结构和文件名丢失了。你有问题吗?如果要保留未提交的内容,为什么要硬重置?我要撤

我将一些新文件添加到索引中

git add .
然后重置

git reset --hard

git在我的工作树中删除了这些文件,以前在存储库中没有,它们都丢失了。我丢失了所有数据。

来自git文档:

--硬重置索引和工作树。对工作树中的跟踪文件所做的任何更改都将被丢弃

因此,这完全符合文件规定。你可能想这么做

git reset
没有
--硬
选项


查看是否要尝试恢复代码。

请参阅。您仍然可以找到添加文件的内容。但是目录结构和文件名丢失了。你有问题吗?如果要保留未提交的内容,为什么要硬重置?我要撤消添加。但将文件保存在工作树中。我运行了一个错误的命令,我应该使用--mixed@jonrsharpe@yuanjianpeng是的,而且既然暗示了
--mixed
,那么
git reset
就足够了。从短期来看,丢失数据确实令人沮丧,但有时你不得不烧掉一次手来吸取教训……如果你可能需要恢复工作树的内容,你可以使用
git stash
而不是
git reset--hard HEAD
。这同样会删除对索引/工作树中跟踪文件的所有更改,但会将这些更改保留在隐藏中。如果您确实确定不需要放弃更改,请仅运行git reset--hard HEAD