Answers:
git show HEAD^:path/to/file
您可以使用显式提交标识符,也HEAD~n可以查看较旧的版本,或者自删除以来是否存在多个提交。
fatal: Invalid object name 'HEAD^'.(我不得不提,我只有“初始提交”)
如果这是您不久前删除的文件,并且不想寻找修订版本,则可以使用(foo在此示例中命名该文件;可以使用完整路径):
git show $(git rev-list --max-count=1 --all -- foo)^:foo
该rev-list调用看重的修订foo,但只列出了一个。由于rev-list列出的时间顺序相反,因此列出的是上次更改的修订,foo即删除的提交foo。(这是基于git不允许更改已删除文件而仍保持删除的假设。)您不能仅使用按原样rev-list返回的修订版,因为该版本不再存在。您必须在它之前请求一个文件,该文件包含文件的最新版本,因此包含in 。foo^git show
**/foo如果您不知道路径,则可以编写(这对rev-list命令有效,但对show命令无效。但是,通过rev-list命令的提交,您就可以找到路径)。
由于您可能不记得确切的路径,因此可以从git log获取sha1,然后只需发出
git cat-file -p <sha1>
git whatchanged --no-abbrev给出类似于git(或svn)日志的输出。
path/to/file是从项目顶部(存储库顶部dir)开始的完整路径。