在Git中查看已删除的文件

我已经用Git删除了一个文件,然后提交,所以文件不再在我的工作副本。 我想看看该文件的内容,但实际上并没有恢复它。 我怎样才能做到这一点?

git show HEAD^:path/to/file 

您可以使用显式的提交标识符或HEAD~n来查看旧版本,或者自删除之后已经有多个提交。

如果这是一个你之前已经删除的文件,并且不想寻找一个修订版本 ,你可以使用(在这个例子中文件名为foo ;你可以使用完整path):

 git show $(git rev-list --max-count=1 --all -- foo)^:foo 

rev-list调用查找foo所有版本,但只列出一个。 由于rev-list按照反向时间顺序列出,那么它列出的是最后一个修改foo修订版本,这将是删除foo的提交。 (这是基于git不允许删除的文件被修改而仍然被删除的假设)。你不能只使用rev-list返回的版本,因为foo不存在。 你必须要求它包含文件的最后一个版本,因此在git show ^

既然你可能不记得确切的path,你可以取而代之的git日志,然后你可以简单地发出

  git cat-file -p <sha1>