获取提交的标签

Get tags of a commit

给定一个 GitPython Commit 对象,如何获取与此提交相关的标签?​​

我喜欢这样的东西:

next(repo.iter_commits()).tags

问题是标签指向提交,而不是相反。要获取此信息,需要对所有标签进行线性扫描,以找出哪些标签指向给定的提交。您可能可以自己编写一些可以做到的东西。以下将为您提供 commit-to-tags 字典:

tagmap = {}
for t in repo.tags():
  tagmap.setdefault(r.commit(t), []).append(t)

对于给定的提交,您可以从以下位置获取与其关联的任何标签:

tags = tagmap[repo.commit(commit_id)]