如何在Git中查看一个文件的特定版本?

时间:2009-07-23 18:35:51

标签: git

如何在git中查看一个文件的特定版本?

我找到了this mail on the mailing list,其中说:

$ git checkout HEAD~43 Makefile
$ git reset Makefile

但是我不明白如何找出'HEAD~43',如果我做了git log aFile,我怎么能找出我应该使用哪个'HEAD~43'?

为什么我需要为该文件运行git reset?它做了什么?

3 个答案:

答案 0 :(得分:102)

您知道该文件属于哪个提交(即:特定修订)?然后做:

git checkout <commit> <file>

另一个命令:

git checkout HEAD~N <file>

当你想从一个范围后面获取该文件的版本时(我为怀旧而做)。

答案 1 :(得分:17)

HEAD~43只是树木,因此您可以使用哈希或标记。您必须使用--将文件名与文件名分开,否则将其视为文件名。例如。

git checkout v0.45 -- filename
git checkout HEAD^ -- filename
git checkout 16bb1a4eeaa9 -- filename

答案 2 :(得分:2)

HEAD~43是指文件的提交(版本)。除此之外,您可以使用从文件上执行git log获得的提交哈希。如果您只想要该文件,则无需在其上运行git reset;只有当你想将文件转发到当前的HEAD时才需要。