python - GitPython 标签排序

标签 python git sorting tags gitpython

我正在尝试使用 GitPython 库获取存储库中的最新标签。通常我是这样做的:

repo = Repo(project_root)
last_tag = str(repo.tags[-1])

但是一旦 1.10 版发布,我总是得到 1.9 ;( 我知道这与输出 git tag -l 列出相同的顺序有关。所以它将是 1.1, 1.10, 1.2, ..., 1.9

问题是如何使用GitPython获取最新的标签? (我知道 git tag -l | sort -V 并且我知道如何不使用 repo 对象来解决这个问题。但也许有人知道我在这个 lib 中获取排序标签列表时缺少什么)

自定义排序功能也是一个选项,但我仍然想知道是否有办法使用 GitPython 来实现?

最佳答案

GitPython 中repo.tags 返回的IterableList 对象扩展了list Python 类,这意味着你可以按照你的方式对其进行排序想。要获取最新创建的标签,您只需执行以下操作:

import git
repo = git.Repo('path/to/repo')
tags = sorted(repo.tags, key=lambda t: t.commit.committed_datetime)
latest_tag = tags[-1]

关于python - GitPython 标签排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25056478/

相关文章:

PHP按子数组值排序数组

php - 使用与另一个数组相同的顺序对数组进行排序

python - 从列表中删除重复项并按相反顺序排序的最佳/最pythonic方法

python - Redshift 将值插入表中

Python OpenCV libpng 警告 : iCCP: known incorrect sRGB profile

python - Python 中的动态 JSON

git - 将参数传递给 Git 别名命令

git - 在 git 中显示提交者日期而不是作者日期

python - 将 EMF/WMF 文件转换为 PNG/JPG

git - 从 git 恢复特定的提交