我删除了一些文件。

我还没有承诺。

我想重置我的工作空间来恢复文件。

我做了一个git结帐。

但被删除的文件还是不见了。

git状态显示:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    cc.properties
#   deleted:    store/README
#   deleted:    store/cc.properties
#

为什么不结帐。将工作空间重置为HEAD?


当前回答

你想看这个吗

这适用于你用过的情况

git checkout -- .

在你做出承诺之前。

您可能还希望删除尚未创建的已创建文件。你不想要他们。:

git reset -- .

其他回答

由于您正在执行git签出,看起来您正在尝试将分支恢复到上次提交状态。

你可以通过git重置HEAD来实现这一点——很难

警告

这样做可能会删除所有最新的修改并取消您的修改,例如,您可能会丢失工作。这可能是你想要的,但请检查文件以确保。

你已经进行了删除,所以你需要做:

git checkout HEAD cc.properties store/README store/cc.properties

Git结帐。仅从已经执行删除操作的索引中检出。

输出告诉您需要做什么。git重置HEAD cc.properties等。

这将取消rm操作。在此之后,再次运行git状态会告诉您需要执行git checkout——cc.properties来取回文件。

更新: 我的配置文件中有这个

$ git config alias.unstage
reset HEAD

我通常用它来取消舞台上的东西

注意:先完成你想保留的工作。

您可以重置您的工作区(并恢复已删除的文件)

git checkout ./*

这对我来说是最简单的方法:

git checkout HEAD~1 path/to/myfile.rb

我在这里找到的。


另一种方法也适用于我:

git reset HEAD path/to/myfile.rb
git restore path/to/myfile.rb