Использование git ls-remote
:
$ git ls-remote -t --refs <URL>
Это дает вывод, такой как:
8f235769a2853c415f811b19cd5effc47cc89433 refs/tags/continuous
24e666ed73486a2ac65f09a1479e91e6ae4a1bbe refs/tags/continuous-develop
7c2cff2c26c1c2ad4b4023a975cd2365751ec97d refs/tags/v2.0
35b69eed46e5b163927c78497983355ff6a5dc6b refs/tags/v2.0-beta10
Вы, вероятно, также хотите передать --exit-code
, чтобы обеспечитьnon- 0
выход, если не возвращены соответствующие ссылки.
Чтобы получить только имена тегов, введите:
sed -E 's/^[[:xdigit:]]+[[:space:]]+refs\/tags\/(.+)/\1/g'
:
$ git ls-remote -t --exit-code --refs https://github.com/robert7/nixnote2.git \
| sed -E 's/^[[:xdigit:]]+[[:space:]]+refs\/tags\/(.+)/\1/g'
continuous
continuous-develop
v2.0
v2.0-beta10
Предложения:
- Пропустите
--exit-code
, чтобы обеспечить выход не 0
, если не возвращены соответствующие ссылки. - Используйте версию
https://
: это быстрее, и если вы упаковываетеВы не хотите подвергаться риску того, что вас попросят ввести ключ ssh. --sort=-v:refname
для сортировки по версии, а не по лексографическому признаку, и самые большие версии вверху - Use
git -c versionsort.suffix=-
для предотвращения 2.0-rc
«после» 2.0
- Добавить шаблон в конце командной строки для фильтрации.Например,
'v*'
, если все теги версий начинаются с v
.
.