我是初学者,使用git版本控制工具。
我想在指定时间下载存储库状态(文件)(例如,在2013年5月5日)。 我怎么能这样做?
答案 0 :(得分:2)
单击“提交”并查找该日期的提交。现在将存储库克隆到您的计算机并检查该提交。
答案 1 :(得分:1)
使用rev-list
命令按反向时间顺序搜索提交
git rev-list <branch-name> --max-count=1 --before=<timestamp>
一个具体的例子。 2014年1月10日之前在我的主分支上的提交
git rev-list master --max-count=1 --before=2014-10-01
答案 2 :(得分:1)
首先,我非常建议您避免使用日期。这是在某个时间点查看存储库的一种非常不精确的方式。相反,确切地说,选择一个特定的提交或标记。通常人们希望恢复到特定版本,在这种情况下应该有一个标签。您可以通过键入git tag
列出所有可用标记。
如果您更愿意使用提交,请使用git log
查找提交。此命令支持许多选项,您可以通过键入git help log
来查看这些选项。例如,在GitHub o-js
上的git log --oneline
repo上生成:
10b5421 Add .npmignore to bower.json ignore list.
a7681b2 Update package.json for new CommonJS structure and add an .npmignore.
c9e3a52 Migrated everything to CommonJS format modules (no more hacks for the we
9af7a3d Lots of adjustments to reduce the minified size by several kilobytes.
c1c7bda Better error messaging across the board (no more "..." errors). Fixes #4
008871d Adjust exception throwing a bit to be more minification-friendly.
3bce458 Expose o.ucFirst to the public.
866d53e Added o.positiveIntType due to this type being a common case.
cc395d1 New CHANGES file format.
f26de19 Massage the CHANGES list a bit for the next release.
哈希实际上是40个字符长,但--oneline
只包括前7个字符,许多其他命令也是如此。您可以使用40个字符的版本或哈希的7个字符版本。
如果您想列出特定日期的提交,您可以这样做:
git log --oneline --since=2013-05-05 --until=2013-05-15
您询问是否可以下载文件。这使我认为您不想克隆存储库,而只是想要在某个时间点存储库的完整快照(没有.git
目录)。这是使用git archive
命令完成的,该命令对该时间点采用tree-ish
值。标签和提交可以正常工作。
如果您想要发布o-js
repo for v0.0.6
的tar存档,请执行以下操作:
git archive --output=o-js-0.0.6.tar v0.0.6
这将在当前目录中创建o-js-0.0.6.tar
,其中所有文件都处于创建v0.0.6
标记时所处的状态。同样,您可以使用提交哈希替换命令中的v0.0.6
,它也可以正常工作。
如果你实际上并不想要这些文件,而是想把你的git checkout倒回到某个时间点你会这样做:
git reset --hard v0.0.6
git reset
命令在经验不足的人手中很危险,因此请谨慎使用。有关git reset
的文档是一个很好的开始:
答案 3 :(得分:0)
从2019年5月开始(不确定何时引入),您可以简单地以以下格式添加日期-HEAD@{2019-04-29}
-代替提交通常所属的URL。
示例:这是最近一次提交https://github.com/facebook/react/tree/95e06ac3d091b6746be80d13840884dc7894b01c
上的反应仓库的链接用格式为https://github.com/facebook/react/tree/HEAD@{2019-04-29}的日期替换提交哈希,将带您进入4月29日的React回购。
您还可以基于时间比较提交-在此处查看来自Github帮助文档的更多信息:https://help.github.com/en/articles/comparing-commits-across-time#comparisons-across-time