我删除了一些文件。

我还没有承诺。

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

我做了一个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?


当前回答

下面是在我的mac上帮助我的命令。我尝试了其他一些解决方案,但它们对我不起作用。

OSX Mavericks上的Git版本

mac-pro:main chris$ git version
git version 1.8.5.2 (Apple Git-48)

命令

git checkout HEAD -- path/to/file/file.cc

其他回答

1.找到你想要恢复使用的特定提交:

   git log
This command will give you a list of commits done by you .

2.恢复到该提交使用:

    git revert <commit id> 

现在您的本地分支将拥有所有特定的文件

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

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

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

$ git config alias.unstage
reset HEAD

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

我也遇到了同样的问题,但上面的解决方案都不适合我。 我最后做的是: —创建同名的空文件 -将该文件与本地历史文件进行比较 -将历史记录复制到空文件。

在寻找如何从另一个分支合并后在我的工作目录中删除文件的答案时发现了这篇文章。合并后尚未作出任何承诺。 因为它是一个正在进行的合并,我不能只是添加它回来使用:

$ git reset <commitid#-where-file.cpp-existed> file.cpp

我不得不做另一个步骤,除了重置文件回来:

$ git checkout -- file.cpp

下面是在我的mac上帮助我的命令。我尝试了其他一些解决方案,但它们对我不起作用。

OSX Mavericks上的Git版本

mac-pro:main chris$ git version
git version 1.8.5.2 (Apple Git-48)

命令

git checkout HEAD -- path/to/file/file.cc