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