ОП сказал, что хочет SHA1 коммита, на который указывают теги. Приведенные выше решения, предложенные sehe и NickSoft, не дают SHA1 коммита, когда тег является аннотированным тегом. Вместо этого они дают SHA1 объекта аннотации, на который указывает. (Объект аннотации указывает на фиксацию.)
Если вы хотите перечислить каждый тег и SHA1 коммита, то вы можете просто выполнить:
git log --tags --oneline --decorate=short
К сожалению, это не даст вам формат, похожий на
git branch -v
Но вы можете подойти довольно близко, выполнив:
git for-each-ref --format="%(refname:short)" refs/tags |
awk '{printf "%s ",$1; system("git rev-list --max-count=1 "$1)}'
Обратите внимание, что git rev-list даст вам SHA1 коммита, а git show-ref и git for-each-ref только SHA1 объекта, на который указывает (что в случае аннотированного тега объект аннотации не коммит).