I have the SHA ID of a commit that I am interested in and would like to know how to find the first tag that contains it.
-
Does this answer your question? stackoverflow.com/questions/1474115/…jasonwryan– jasonwryan2012-09-09 23:55:11 +00:00Commented Sep 9, 2012 at 23:55
-
Related: stackoverflow.com/questions/7923091/…Ciro Santilli OurBigBook.com– Ciro Santilli OurBigBook.com2018-05-31 16:31:04 +00:00Commented May 31, 2018 at 16:31
2 Answers
As previously stated, this can be done with git describe. In your particular case, however, you may find it more convenient to run git name-rev --tags --name-only <SHA>, which outputs exactly what you want. See git-name-rev(1).
git describe --contains "$committish" shows a reference to the commit built on a tag plus a ~$n ancestorhood count, so the following command shows the most recent tag that contains a commit:
git describe --contains "$committish" | sed 's/~.*//'
If there is no tag that contains this commit, git describe will fail. If you'd like to get the (abbreviated) committish instead, add the --always option.