Я хочу, чтобы git перечислил все теги вместе с полной аннотацией или сообщением о коммите. Нечто подобное близко
git tag -n5
Это именно то, что я хочу, за исключением того, что оно будет отображаться только до первых 5 строк сообщения тега.
Я думаю, я могу просто использовать очень большое количество. Какое наибольшее число я могу использовать здесь? Это то же самое на каждом компьютере?
ОБНОВЛЕНИЕ : у меня было много времени, чтобы подумать об этом, и теперь я думаю, что я не обязательно хочу показывать полноту каждого сообщения, если некоторые из них чрезвычайно длинны. У меня действительно не было особой потребности, которая требовала, чтобы я видел массивные сообщения (кроме моей собственной склонности к долгим размышлениям во всем, что я пишу, включая сообщения тегов). Мне просто не понравилась идея, что это не обязательно покажет мне все сообщение, так как это заставило меня почувствовать, что оно скрывает информацию от меня. Но слишком много информации также может быть плохо.
git tag -n
сделал это для меняgit tag -n
печатает только первую строку аннотации, в соответствии с man-страницей.Ответы:
Попробуйте это, он перечислит все теги вместе с аннотациями и 9 строками сообщений для каждого тега:
также можно использовать
если конкретные теги должны быть в списке:
(например, приведенная выше команда будет отображать только теги, начинающиеся с "v3.")
-l, --list Список тегов с именами, которые соответствуют заданному шаблону (или всем, если шаблон не указан). Запуск «git tag» без аргументов также перечисляет все теги. Шаблон является подстановочным знаком оболочки (то есть сопоставляется с помощью fnmatch (3)). Может быть дано несколько шаблонов; если какой-либо из них совпадает, тег отображается.
источник
-l
опция заключается в фильтрации по шаблону. Я не понимаю, как это было бы полезно здесь. Я что-то пропустил?-l
совершенно лишнееКоротко и сладко. Это будет содержать до 99 строк каждого тега аннотации / сообщения о коммите. Вот ссылка на официальную документацию по тегу git .
Теперь я думаю, что ограничение показа до 99 строк на тег - это действительно хорошая вещь, поскольку большую часть времени, если бы для одного тега было действительно более 99 строк, вы бы не хотели видеть все остальные линии вы бы? Если вы хотите видеть более 99 строк в теге, вы всегда можете увеличить его до большего числа.
Я имею в виду, я думаю, что может быть особая ситуация или причина, чтобы хотеть видеть массивные сообщения тегов, но в какой момент вы не хотите видеть все сообщение? Когда в нем более 999 строк? 10000? 1000000? Моя точка зрения, как правило, имеет смысл ограничить количество строк, которые вы видите, и это число позволяет вам установить это.
Поскольку я привожу аргумент в отношении того, что вы обычно хотите видеть при просмотре своих тегов, вероятно, имеет смысл установить что-то вроде этого в качестве псевдонима (из комментария Юлиана Онофрея ниже):
git config --global alias.tags 'tag -n99'
Я имею в виду, вы не хотите вводить
git tag -n99
каждый раз, когда вы просто хотите увидеть свои теги, не так ли? Как только этот псевдоним настроен, всякий раз, когда вы хотите увидеть свои теги, вы просто вводитеgit tags
в свой терминал. Лично я предпочитаю пойти дальше, чем это, и создать еще более сокращенные псевдонимы bash для всех моих часто используемых команд. Для этого вы можете добавить что-то вроде этого в ваш файл .bashrc (работает в Linux и подобных средах):alias gtag='git tag -n99'
Затем, когда вы хотите увидеть свои теги, вы просто печатаете
gtag
. Еще одно преимущество перехода по пути псевдонима (псевдонимы git или псевдонимы bash или что-то еще) заключается в том, что у вас уже есть место, где вы можете добавить дополнительные настройки того, как лично вы обычно хотите, чтобы ваши теги показывались вам (например, сортировка). их определенным образом, как в моем комментарии ниже и т. д.). Как только вы преодолеете трудности, связанные с созданием своего первого псевдонима, вы поймете, как легко создавать больше таких элементов для других вещей, которые вам нравятся, работать индивидуально, напримерgit log
, но давайте сохраним этот для другого вопроса / ответа. ,источник
git config --global alias.tags 'tag -n99'
alias gtag='git for-each-ref --format="%(refname:short) %(taggerdate) %(subject) %(body)" refs/tags | sort -V'
Ответ Марка Лонгаира (использование
git show
) близок к желаемому в вопросе. Однако он также включает в себя коммит, на который указывает тег, вместе с полным патчем для этого коммита. Поскольку фиксация может быть несколько не связана с тегом (это попытка захвата тега только одним коммитом), это может быть нежелательно. Я считаю, что следующее немного приятнее:источник
Это далеко не красиво, но вы могли бы создать скрипт или псевдоним, который делает что-то вроде этого:
источник
git for-each-ref refs/tags/ --format='%(refname)'
наgit tag -l
?git tag
это фарфор иgit for-each-ref
сантехника, поэтому вывод последнего должен быть более стабильным для сценариев.Только последнее сообщение тега:
источник
git cat-file -p <tag> | tail -n +6
Использовать опцию --format
источник
Я предпочитаю делать это в командной строке, но если вы не возражаете против веб-интерфейса и используете GitHub, вы можете зайти
https://github.com/user/repo/tags
и нажать «...» рядом с каждым тегом, чтобы отобразить его аннотацию.источник