我删除了一些文件。
我还没有承诺。
我想重置我的工作空间来恢复文件。
我做了一个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 -- <file>
您可以使用下面的命令获得工作树中所有已删除文件的列表。
$ git ls-files --deleted
如果已提交删除,则查找发生删除的提交位置,然后从该提交中恢复文件。
#find the commit hash where it had this file deleted
$ git rev-list -n 1 HEAD -- <file>
它会给你一些类似c46e81aa403ecb8a0f7a323a358068345的东西,现在使用这个提交哈希和父操作符(^),如下所示:
$ git checkout <commit>^ -- <file>
例子:
$ git checkout c46e81aa403ecb8a0f7a323a358068345^ -- <file>
如果您正在寻找要恢复的文件的路径,下面的命令将显示所有已删除文件的摘要。
$ git log --diff-filter=D --summary
如果你只想显示文件列表:
git log --diff-filter=D --summary | grep "delete mode"