команда git для отображения всех (легких) дат создания тегов

186

Есть ли один вкладыш, который показывает мне даты, когда были созданы все легковесные теги git?

Что - то вроде: git show tags --format=date?

Дрор Коэн
источник
1
@jleedev: я искал решение для легких тегов. Я отредактирую свой вопрос соответственно.
Дрор Коэн
Также представляет интерес для этого Q: stackoverflow.com/questions/2021599/…
Стин
12
К легкой метке не прикреплена информация о дате. Поэтому принятый ответ неверен. Даты в выходных данных git log --tags --simplify-by-decoration --pretty="format:%ai %d"являются датами объектов, на которые указывают теги, а не датами создания самих тегов.
jub0bs
2
@Jubobs, строго говоря, вы правы: правильный ответ: «Невозможно делать то, что вы хотите». Но это, вероятно, то, что хотел ОП.
Сиро Сантилли 郝海东 冠状 病 六四 事件 法轮功

Ответы:

303

Я нашел в этой ссылке решение, которое соответствует моим потребностям:

git log --tags --simplify-by-decoration --pretty="format:%ai %d"

Я поместил эту команду в свой псевдоним ~/.alias, так что теперь каждый раз, когда я запускаю, gitshowtagbydateя получаю то, что мне нужно.

Дрор Коэн
источник
8
Стоит разобрать это по порядку, чтобы получить хронологический порядок, если вам нравятся подобные вещи.
cam8001
41
git log --date-order --graph --tags --simplify-by-decoration --pretty=format:'%ai %h %d':-)
Ноа Суссман
2
git log --decorate = full --all --pretty = format: '% h% d% s% cr% ae' --abbrev-commit | grep 'refs / tags'
sivann
49
К легкой метке не прикреплена информация о дате. Поэтому этот ответ неверен. Даты в выходных данных git log --tags --simplify-by-decoration --pretty="format:%ai %d"являются датами объектов, на которые указывают теги, а не датами создания самих тегов.
jub0bs
1
@Jubobs Если ваша система тегов выполняет отдельную фиксацию, например Maven , или если вы записываете новую версию тега, например, в файл версии, например, не имеет значения, является ли этот тег легким или аннотированным . Это потому, что коммит, связанный с легковесным тегом, в любом случае будет содержать текущую дату и информацию о коммиттере.
здесь
61

git tag -lПоказывает список всех тегов. --formatАргумент может быть использован для определения пользовательского вывода. Например:

git tag -l --format='%(refname)   %(taggerdate)'

Обновление на основе комментариев ниже:

 git tag -l --sort=-creatordate --format='%(creatordate:short):  %(refname:short)'
vdboor
источник
13
Трубка с разделителями, форматирование даты iso 8601, отсортировано по последнему слову сверху. git tag -l --format="%(taggerdate:iso8601)|%(refname:short)" | sort -r
ingyhere
14
taggerdateне всегда установлен; попробуй creatordate.
9000
7
Версия @ingyhere была тем, что я искал git tag -l --format="%(creatordate:short)|%(refname:short)" | sort -r- ссылка для настройки метки времени
revelt
1
@revelt git> = 2.0 предоставляет параметр сортировки. Поставьте минус, чтобы изменить порядок. git tag -l --sort=-creatordate --format='%(creatordate:short)|%(refname:short)'
кон--
В соответствии с тем, git-for-each-refкак formatфлаг определяет и отображает поля, вы можете добавить *перед полем имя, чтобы получить дату объекта, на который указывает тег. --format='%(*creatordate)'хотя я не видел никакой разницы, когда я попробовал это.
Черувим