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