К легкой метке не прикреплена информация о дате. Поэтому принятый ответ неверен. Даты в выходных данных git log --tags --simplify-by-decoration --pretty="format:%ai %d"являются датами объектов, на которые указывают теги, а не датами создания самих тегов.
jub0bs
2
@Jubobs, строго говоря, вы правы: правильный ответ: «Невозможно делать то, что вы хотите». Но это, вероятно, то, что хотел ОП.
Сиро Сантилли 郝海东 冠状 病 六四 事件 法轮功
Ответы:
303
Я нашел в этой ссылке решение, которое соответствует моим потребностям:
К легкой метке не прикреплена информация о дате. Поэтому этот ответ неверен. Даты в выходных данных 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)'
Трубка с разделителями, форматирование даты 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)'хотя я не видел никакой разницы, когда я попробовал это.
git log --tags --simplify-by-decoration --pretty="format:%ai %d"
являются датами объектов, на которые указывают теги, а не датами создания самих тегов.Ответы:
Я нашел в этой ссылке решение, которое соответствует моим потребностям:
Я поместил эту команду в свой псевдоним
~/.alias
, так что теперь каждый раз, когда я запускаю,gitshowtagbydate
я получаю то, что мне нужно.источник
git log --date-order --graph --tags --simplify-by-decoration --pretty=format:'%ai %h %d'
:-)git log --tags --simplify-by-decoration --pretty="format:%ai %d"
являются датами объектов, на которые указывают теги, а не датами создания самих тегов.git tag -l
Показывает список всех тегов.--format
Аргумент может быть использован для определения пользовательского вывода. Например:Обновление на основе комментариев ниже:
источник
git tag -l --format="%(taggerdate:iso8601)|%(refname:short)" | sort -r
taggerdate
не всегда установлен; попробуйcreatordate
.git tag -l --format="%(creatordate:short)|%(refname:short)" | sort -r
- ссылка для настройки метки времениgit tag -l --sort=-creatordate --format='%(creatordate:short)|%(refname:short)'
git-for-each-ref
какformat
флаг определяет и отображает поля, вы можете добавить*
перед полем имя, чтобы получить дату объекта, на который указывает тег.--format='%(*creatordate)'
хотя я не видел никакой разницы, когда я попробовал это.