获取提交的标签

时间:2016-01-21 19:08:26

标签: python git commit git-tag gitpython

鉴于GitPython Commit的对象,我如何获得与此提交相关的标签?​​

我喜欢这样的事情:

next(repo.iter_commits()).tags

1 个答案:

答案 0 :(得分:3)

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

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

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

tags = tagmap[repo.commit(commit_id)]