Как было сказано ранее, это можно сделать с помощью git describe. Однако в вашем конкретном случае вам может быть удобнее запустить программу git name-rev --tags --name-only <SHA>, которая выдает именно то, что вы хотите. Смотрите git-name-rev (1) .
git describe --contains "$committish"показывает ссылку на коммит, построенный на теге, плюс ~$nсчетчик предков, поэтому следующая команда показывает самый последний тег, содержащий коммит:
git describe --contains "$committish" | sed 's/~.*//'
Если нет тега, содержащего этот коммит, git describeпроизойдет сбой. Если вы хотите вместо этого получить (сокращенно) коммит, добавьте --alwaysопцию.
Ответы:
Как было сказано ранее, это можно сделать с помощью
git describe
. Однако в вашем конкретном случае вам может быть удобнее запустить программуgit name-rev --tags --name-only <SHA>
, которая выдает именно то, что вы хотите. Смотрите git-name-rev (1) .источник
git describe --contains "$committish"
показывает ссылку на коммит, построенный на теге, плюс~$n
счетчик предков, поэтому следующая команда показывает самый последний тег, содержащий коммит:Если нет тега, содержащего этот коммит,
git describe
произойдет сбой. Если вы хотите вместо этого получить (сокращенно) коммит, добавьте--always
опцию.источник