Показать теги git, отсортированные по дате
Как теги git в хронологическом порядке? (сначала последние теги)
git tag
отображается только в алфавитном порядке.
6 ответов
правильный ответ:
git tag --sort=-taggerdate
taggerdate
соответствующее поле. Согласно git tag man page:
префикс
-
сортировка в порядке убывания значения.
git tag
использует те же ключи сортировки, что и git-for-each-ref
, где задокументированы ключи сортировки.
в git 2.3.3 я могу просто сделать это, чтобы отсортировать их по дате:
git tag --sort version:refname
просто помните:
git log --tags --decorate --simplify-by-decoration
легче читать результат:
git log --tags --simplify-by-decoration --pretty="format:%d - %cr"
есть хороший однострочный я нашел, что Уилл показывает сообщение тега даты, автора тега и делает хорошую работу с расположением столбцов.
git for-each-ref --sort=taggerdate --format '%(tag)_,,,_%(taggerdate:raw)_,,,_%(taggername)_,,,_%(subject)' refs/tags \
| awk 'BEGIN { FS = "_,,,_" } ; { t=strftime("%Y-%m-%d %H:%M",); printf "%-20s %-18s %-25s %s\n", t, , , }'
вывод будет выглядеть так:
...
2015-08-03 10:56 v1.51 Release v1.51 FirstName LastName
2015-08-10 16:12 v1.52 Release v1.52 Jane Doe
кредит на этот сайт
поддерживаемые типы, когда дело доходит до сортировки с git tag
являются:
-
refname
сортировка в лексикографическом порядке -
version:refname
илиv:refname
- это сортировка по версии
решение вашей проблемы будет выглядеть так: git tag -l --sort version:refname
есть еще много полезных команд, связанных с тегами git, обязательно проверьте в этой статье для более подробной информации.
попробуй такое
git log --tags --decorate --simplify-by-decoration | grep ^commit|grep tag|sed -e 's/^.*: //' -e 's/)$//'