我可以从给定日期的git中检索文件版本吗?

时间:2013-06-04 19:54:01

标签: git date version

我需要在我的git存储库中检索某个文件的版本,这是日期之前的最后一次提交。例如,我的日期是2013-03-08,所以我想要在2013-03-07或之前提交的文件版本。

我可以使用像git show HEAD~<REVISION-NUM>:foo/bar/myfile.c这样的命令,但我必须弄明白我的日期<REVISION-NUM>是什么。此外,如果我需要检索同一日期的多个文件,他们的<REVISION-NUM>可能会有所不同。

那么是否有一个允许我直接指定日期的命令

2 个答案:

答案 0 :(得分:4)

您可以使用rev-parse

执行此操作

git help rev-parse了解详情,例如

git checkout 'master@{2013-06-01}'
git checkout 'master@{yesterday}'
git checkout 'master@{5 days ago}'

答案 1 :(得分:2)

这将为您提供所需日期之前的最新提交:

git log -n1 --before <date>

然后您可以检查该提交(即git checkout <sha1>)并查看当时所有文件的状态。