在Git中查看已删除的文件

时间:2009-09-08 18:11:37

标签: git

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

3 个答案:

答案 0 :(得分:134)

git show HEAD^:path/to/file

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

答案 1 :(得分:43)

如果这是您暂时删除的文件而不想搜索修订,则可以使用(此示例中的文件名为foo;你可以使用完整路径):

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

rev-list调用查找foo的所有修订版,但只列出一个。由于rev-list按逆时间顺序列出,因此它列出的是更改foo的最后一个修订版,它将是删除foo的提交。 (这是基于git不允许更改已删除文件但保持删除的假设。)您不能只使用rev-list返回的修订版本因为foo不再存在。你必须要求它前面的那个包含文件的最后一个版本,因此^中的git show

答案 2 :(得分:9)

由于你可能不记得确切的路径,你可以从git log获取sha1然后你可以简单地发出

 git cat-file -p <sha1>