我怎样才能在Git中检出一个特定版本的文件?

如何在git中检出一个特定版本的文件?

我在邮件列表中发现了这封邮件,其中说:

$ git checkout HEAD~43 Makefile
$ git reset Makefile

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

为什么我需要为该文件运行git reset ? 它有什么作用?


你知道该文件属于什么提交(即:特定的修订版)? 然后做:

git checkout <commit> <file>

另一个命令:

git checkout HEAD~N <file>

是为了当你想从一个范围内得到一个文件的版本(我为怀旧而做)。


HEAD~43只是treeish,所以你可以使用散列或标记。 您必须使用--将文件名与树分开,否则将被视为文件名。 例如。

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

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

链接地址: http://www.djcxy.com/p/8987.html

上一篇: How can I check out a particular version of one file in Git?

下一篇: Revert changes to a file in a commit