Мне нужно grep / sed теги, которые связаны с коммитом в git-репозитории.
Я пробовал с этой командой:
git ls-remote -t <remote-project> | grep -E '<commit-sha>' | sed -e 's,.* -e refs/tags/,,' -e 's/\^{}//'
Но я получаю вот что:
<commit-sha1> refs/tags/<tag1>
<commit-sha1> refs/tags/<tag2>
Я хочу выбрать только tag1 и tag2, чтобы потом разделить их и сохранить в переменных для дальнейшего использования.
Я также пробовал:
git ls-remote -t <remote-project> | grep -E '<commit-id>' | sed -e 's,.* -e refs/tags/,,' -e 's/\^{}//' | cut -f 2
Вывод:
refs/tags/<tag1>
refs/tags/<tag2>
Все еще не то, что я искал, и я не думаю, что это компактный способ сделать это.
Ожидаемый вывод для одного коммита:
tag1
tag2
Редактировать:
git ls-remote -t ssh://somerepo.git
Эта команда предоставляет мне список коммитов со связанной информацией тега.
Выход:
b63862c999a160add6b7617b3deb40a399aaa0e7 refs/tags/tag1
b63862c999a160add6b7617b3deb40a399aaa0e7 refs/tags/tag2^{}
1a761add5189d037e4b713a000aa650c740f624e refs/tags/tag3
a8723b64a0d70f7d92ad65d3535ea13a9d6cfc2b refs/tags/tag4^{}