在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>