鉴于GitPython Commit的对象,我如何获得与此提交相关的标签?
我喜欢这样的事情:
next(repo.iter_commits()).tags
答案 0 :(得分:3)
问题是标签指向提交,而不是相反。要获取此信息,需要对所有标记进行线性扫描,以找出哪些标记指向给定的提交。你可能会自己写一些可以做到的东西。以下内容将为您提供一个commit-to-tags字典:
tagmap = {}
for t in repo.tags():
tagmap.setdefault(r.commit(t), []).append(t)
对于给定的提交,您可以从以下位置获取与之关联的任何标记:
tags = tagmap[repo.commit(commit_id)]