2017-01-04 72 views
2

假设我想从一个URL克隆大混帐回购协议,当且仅当一个提交作出最后n(比方说24)小时内掌握。我不想克隆它,因为这样的大回购相当耗时,我也不想克隆一次,然后检查git状态定期。查询最后一次提交的git仓库没有克隆

我想知道克隆前最后一次提交的时间。有没有办法在git中做到这一点?如果不是,我有什么选择?我知道我可以通过git ls-remote

回答

4

得到最后一次提交的哈希值。一个选项可以继续并克隆回购,但只有深度为1.这应该使得下载速度非常快。

然后,您可以检查主时间戳的提示。

实施例:

git clone --depth 1 https://github.com/jquery/jquery.git jquery 

参见this文章获取更多信息。

的Git支持“浅克隆”,这是描述与 历史上的克隆操作中截断成特定深度本地存储库的更简洁 有意义的方式的概念。通过 向clone命令提供参数--depth 1,进程 将只复制存储库中所有内容的最新版本。

-

另一种选择,如果你的目标回购是在GitHub上,是使用GitHub的REST API是这样的:

GET /repos/:owner/:repo/commits/:sha 

然后,您可以解析为提交的时间戳响应。

更多信息:https://developer.github.com/v3/repos/commits/#get-a-single-commit