我希望能够检查给定repo的最新标签(这里以CPython为例)。
以下方法有效:
g = git.cmd.Git()
blob = g.ls_remote('https://github.com/python/cpython', sort='-v:refname', tags=True)
blob.split('\n')[0].split('/')[-1] # 'v3.9.0a6'
因为这个 blob
看起来像这样:
'bc1c8af8ef2563802767404c78c8ec6d6a967897\trefs/tags/v3.9.0a6\ndcd4 (...)'
但是:有没有更简洁的方法来获取最新的标签?
最好使用gitpython
,但其他任何软件包也可以。
git ls-remote
是我知道的唯一一个在没有克隆的情况下获取存储在远程的信息的命令。我打算投票关闭这个问题,因为你似乎已经有了一个不错的解决方案,“更干净的方式”显然是非常主观的。 - LeGECgitpython
或任何其他库支持,以便它经过充分测试并得到社区支持,比解析更稳定。我的解决方案大致如下:“哦,我想我在那个字符串中看到了标签,我只需尝试提取它。”我没有验证它在以前的git版本中如何工作,或者它将来是否会得到支持--这是一个库做得更好的事情。 这有意义吗? - ponadtogitpython
贡献你的解决方案,以便由社区进行测试和支持? - mkrieger1