How to list all tags that contain a commit?

This question is similar to How to list all tags pointing to a specific commit in git, but with one difference: I wish to search for all tags that contain a specific commit within the tree of each tag, not specifically the files marked in the tag itself (in this case, only the Makefile change has been tagged).


Solution 1:

git tag --contains <commit>

Solution 2:

Note that you need git 2.0.x (Q3 2014) in order to list all tags for a certain commit if you have a large repo

See commit cbc60b6 by Jean-Jacques Lafay (lanfeust69):

git tag --contains: avoid stack overflow

In large repos, the recursion implementation of contains(commit, commit_list) may result in a stack overflow. Replace the recursion with a loop to fix it.

This problem is more apparent on Windows than on Linux, where the stack is more limited by default.

See also this thread on the msysGit list.