如何在git中查看一个文件的特定版本?
我找到了this mail on the mailing list,其中说:
$ git checkout HEAD~43 Makefile
$ git reset Makefile
但是我不明白如何找出'HEAD~43',如果我做了git log aFile
,我怎么能找出我应该使用哪个'HEAD~43'?
为什么我需要为该文件运行git reset
?它做了什么?
答案 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时才需要。