pon*_*dto 5 python git git-tag gitpython
我希望能够检查给定存储库的最新标签是什么(我在这里使用 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是 git 套件的一个稳定且有记录的命令,因此解析其输出已经是获取所需信息的有效且稳定的方法。(我挖出了一份发行说明,其中指定在1.5.4
版本(2007-2008 年某个地方发布)中用 C 重写了它,这意味着它在以前的版本中已经作为脚本存在)
AFAIK,目前还没有一个 python 包装器来通过 python 方法查找所述引用的存在或值,但所述方法的实现看起来很像你自己编写的。