假设我希望从URL克隆一个大的git repo,当且仅当在最后n
(例如24小时)内提交了master。我不想克隆它,因为对于这么大的回购来说这相当耗时,我也不希望克隆它一次,然后检查,例如git状态定期。
我希望能够在克隆之前判断最后一次提交的时间。有没有办法在git中这样做?如果没有,我的选择是什么?我知道我可以通过git ls-remote
答案 0 :(得分:5)
一个选项可能是继续克隆回购,但只有深度为1.这应该可以实现非常快速的下载。
然后,您可以查看主人时间戳的提示。
示例:
git clone --depth 1 https://github.com/jquery/jquery.git jquery
有关详细信息,请参阅this文章。
Git支持“浅层克隆”的概念,这是一个更多 用于描述本地存储库的简洁有意义的方式 在克隆操作期间,历史记录被截断到特定深度。通过 为克隆命令提供--depth 1的参数,即进程 将仅复制存储库中所有内容的最新版本。
-
另一个选择,如果您的目标仓库在GitHub上,将使用GitHub的REST API,如下所示:
GET /repos/:owner/:repo/commits/:sha
然后,您可以解析提交时间戳的响应。
更多信息:https://developer.github.com/v3/repos/commits/#get-a-single-commit