如何在Git中检出一个特定版本的文件?
如何在git中查看一个特定版本的文件?
我在邮件列表中发现了这封邮件 ,其中说:
$ git checkout HEAD~43 Makefile $ git reset Makefile
但是我不明白怎么find'HEAD〜43',如果我做了一个git log aFile
,怎么才能知道'HEAD〜43'应该用什么?
为什么我需要为该文件运行git reset
? 它有什么作用?
你知道该文件属于什么提交(即:特定的修订版)? 然后做:
git checkout <commit> <file>
另一个命令:
git checkout HEAD~N <file>
是为了当你想从一个范围内获得文件的版本(我为怀旧)。
HEAD〜43只是树,所以你可以使用一个哈希或标签。 你必须用--
分隔文件名,否则将被视为文件名。 例如。
git checkout v0.45 -- filename git checkout HEAD^ -- filename git checkout 16bb1a4eeaa9 -- filename
HEAD~43
引用文件的提交(版本)。 取而代之的是,你可以使用从文件上的git log
获得的提交散列。 如果你只是想要这个文件,你不需要运行git reset
就可以了。 只有当你想将文件转发到当前的HEAD时才有必要。