Вы имеете в виду, что хотите получить список всех тегов в порядке дат их создания?
lithuak 07
3
FYI (1.) Этот вопрос предназначен для перечисления АННОТИРОВАННЫХ тегов по дате. (2.) Чтобы просмотреть список LIGHTWEIGHT тегов по дате, перейдите сюда . (3.) Чтобы получить полезное напоминание о различиях между облегченными тегами Git и аннотированными тегами, перейдите сюда .
Тревор Бойд Смит
@TrevorBoydSmith: Это не совсем правильно. Разница заключается в том, что (2) перечислена все тег по фиксации даты из помеченных фиксации , в то время как эта страница дает решение, сортировать по дате маркированного (хотя только для аннотированных тегов, так как мерзавец не дата магазина помечена для легких тегов).
Дэвид П.
Ответы:
175
Сортировка по дате создания тега работает с аннотированными и облегченными тегами:
Потрясающие. git for-each-ref --format="%(taggerdate): %(refname)" --sort=-taggerdate --count=10 refs/tagsсделал именно то, что мне нужно. Спасибо!
Jon Ursenbach
21
Решение @DrorCohen, которое работает для легких тегов: stackoverflow.com/questions/6900328/… . Вставка здесь для удобства: git log --tags --simplify-by-decoration --pretty = "format:% ai% d"
Gilead,
5
При необходимости можно использовать %(contents)для добавления аннотаций, напримерgit for-each-ref --sort='*authordate' --format='%(taggerdate:short) | %(tag) | %(contents)' refs/tags
Тим Диггинс,
7
Или даже немного чище:git for-each-ref --sort=taggerdate --format '%(tag)'
Baris Wanschers 08
4
--sort=creatordateработает как для аннотированных, так и для неаннотированных тегов, но, --sort=taggerdateпохоже, работает только с аннотированными тегами. протестировано с использованиемgit version 2.16.3
Для фиксации и тегов объектов, специальные creatordateи creator
поля будут соответствовать соответствующему дате или имя-адрес электронной почты на дату кортеж из committerили taggerполей в зависимости от типа объекта. Они предназначены для работы как с аннотированными, так и с облегченными тегами .
Таким образом, использование creatordateработает с тегами:
Большое спасибо. Мне было интересно, почему некоторые даты были пустыми. Я уже подозревал легковесные теги. Я рад, что мне не нужно воссоздавать теги, спасибо creatordate!
Для ленивых: git log --tags --simplify-by-decoration --pretty="format:%ci %d" | grep "tag:"и у меня это работает лучше всего.
Mateusz
1
Обратите внимание, что это упорядочено по дате фиксации, а не по дате создания тегов. (В настоящее время) самый популярный ответ Джоша Ли упорядочен по дате создания тега.
Натаниэл Вуллс,
13
git tag --sort=-taggerdate
Согласно странице руководства, «Префикс - для сортировки в порядке убывания значения».
git tagиспользует те же ключи сортировки git-for-each-ref, что и, где ключи документированы.
Если вам не нравится, как теги сортируются по умолчанию, вы можете, например, отсортировать по дате с помощью этой опции --sort=creatordate. См. Ответ VonC для более подробной информации.
Немного запутано. ... В аннотированных тегах committerdate пуст, тогда как в облегченных тегах taggerdate пуст. Таким образом, в качестве обходного пути '* committerdate' сообщает Git, что даты обратных ссылок из исходного объекта фиксации, когда он легкий. ...
ingyhere
Использование creatordate вместо этого должно эффективно делать то же самое.
Ответы:
Сортировка по дате создания тега работает с аннотированными и облегченными тегами:
источник
git for-each-ref --format="%(taggerdate): %(refname)" --sort=-taggerdate --count=10 refs/tags
сделал именно то, что мне нужно. Спасибо!%(contents)
для добавления аннотаций, напримерgit for-each-ref --sort='*authordate' --format='%(taggerdate:short) | %(tag) | %(contents)' refs/tags
git for-each-ref --sort=taggerdate --format '%(tag)'
--sort=creatordate
работает как для аннотированных, так и для неаннотированных тегов, но,--sort=taggerdate
похоже, работает только с аннотированными тегами. протестировано с использованиемgit version 2.16.3
Git 2.8 (март 2016 г.) документирует еще один вариант, относящийся к git 1.4.4 (октябрь 2006 г.) .
См. Commit e914ef0 (5 января 2016 г.) Эрика Вонга (
ele828
) .(Объединено Junio C Hamano -
gitster
- в коммите 108cb77 , 20 января 2016 г.)Увидеть новый
Documentation/git-for-each-ref.txt
Таким образом, использование
creatordate
работает с тегами:Или:
Как я подробно рассказываю в разделе « Как отсортировать теги git по порядку строк версии в форме rc-XYZW? », Вы можете добавить порядок сортировки
git tag
(начиная с Git 2.0 июня 2014 г.).Этот порядок сортировки включает в себя имя поля (указанное в
git for-each-ref
) taggerdate . Это позволяетgit tag --sort=taggerdate
(упоминается DarVar ниже ).Например, в
git/git
репо он будет указыватьv2.10.0
тег последним:Порядок по умолчанию не будет (
git tag
):источник
creatordate
!Также приятный вывод (без поля даты):
Чтобы увидеть полную историю с зависимостями и чередующимися линейными коммитами (только важные события, такие как теги и ветвление / слияние):
источник
git log --tags --simplify-by-decoration --pretty="format:%ci %d" | grep "tag:"
и у меня это работает лучше всего.Согласно странице руководства, «Префикс - для сортировки в порядке убывания значения».
git tag
использует те же ключи сортировкиgit-for-each-ref
, что и, где ключи документированы.источник
Этот однострочник отображает даты и теги без каких-либо проблем.
Вывод:
Если вам не нравится, как теги сортируются по умолчанию, вы можете, например, отсортировать по дате с помощью этой опции
--sort=creatordate
. См. Ответ VonC для более подробной информации.источник
Чтобы полностью отсортировать аннотированные теги и облегченные теги на основе даты фиксации, я использую:
Эта команда перечислит каждый тег и связанный идентификатор объекта фиксации в хронологическом порядке.
источник
С Git
version 2.10.0.windows.1
git tag --sort=taggerdate
источник
Следующее зависит от фиксации, поэтому не имеет значения, есть ли у нее информация о дате с фиксацией:
Ответ Джоша Ли выше полагается на дату тега, чтобы получить правильный порядок.
источник
tac
- может изменить ее наmore
. В любом случае ваша команда сработала отлично - спасибо!Основываясь на ранее упомянутых методах, я хотел также видеть фактическую дату тега в списке, поэтому моя используемая версия:
источник