如何在不克隆整个存储库的情况下显示远程git存储库的主分支的修订日期?

时间:2015-08-04 20:20:34

标签: git bash github

我需要知道远程存储库上最新版本master分支的日期和时间。我已经在本地安装了git,我知道git repo的HTTPS克隆URL,它在GitHub上托管。我知道如果我克隆了repo,我可以做git show --format="%ci %cr" master | head -n 1,但是我需要一个能够快速运行的命令,而不会留下任何大小的数据;克隆一个200 MB的回购无法使用。

如何在不克隆整个存储库的情况下显示远程GitHub存储库的主分支的修订日期?

1 个答案:

答案 0 :(得分:2)

我认为你不能用Git严格执行此操作(即以某种方式使用所有 Git遥控器)。但是有一个使用GitHub's GET /repos/:owner/:repo/branches/:branch endpoint的解决方案,例如

curl https://api.github.com/repos/github/git-lfs/branches/master
# {
#   "name": "master",
#   "commit": {
#     "sha": "df4be34fff5d9c70f5d8b897bbe23fa809776b6a",
#     "commit": {
#       "author": {
#         "name": "risk danger olson",
#         "email": "technoweenie@gmail.com",
#         "date": "2015-08-04T21:24:00Z"
#       },
#       "committer": {
#         "name": "risk danger olson",
#         "email": "technoweenie@gmail.com",
#         "date": "2015-08-04T21:24:00Z"
#       },
#       ...

使用您喜欢的JSON库从响应中提取commit/commit/author/date和/或commit/commit/committer/date个节点。命令行工具jq可能会有所帮助:

curl https://api.github.com/repos/github/git-lfs/branches/master \
    | jq .commit.commit.author.date,.commit.commit.committer.date
# "2015-08-04T21:24:00Z"
# "2015-08-04T21:24:00Z"

对于私人存储库,您必须authenticate