Ответ 1
git tag -n99
Короткий и сладкий. Это приведет к отображению до 99 строк из сообщения аннотации/фиксации. Вот ссылка на официальную документацию для тега git: http://git-scm.com/docs/git-tag
Я хочу, чтобы git отображал все теги вместе с полным сообщением аннотации или фиксации. Что-то вроде этого близко:
git tag -n5
Это делает именно то, что я хочу, за исключением того, что он будет отображаться только в первых 5 строках сообщения тега.
Думаю, я могу просто использовать очень большое число. Какое максимальное число я могу использовать здесь? Это то же самое на каждом компьютере?
ОБНОВЛЕНИЕ. У меня было много времени, чтобы подумать об этом, и теперь я думаю, что я не обязательно хочу показывать все сообщение, если оно необычно длинное. Кажется, что-то вроде этого отлично работает для меня:
git tag -n99
Если сообщение тега действительно длиннее 99 строк, я не хочу его видеть. Но git чрезвычайно сложный и гибкий. В каких случаях это не было бы лучшим решением? Я заметил, что многие из опубликованных решений использовали -l
otion, но разве это не просто указание шаблона для поиска?
git tag -n99
Короткий и сладкий. Это приведет к отображению до 99 строк из сообщения аннотации/фиксации. Вот ссылка на официальную документацию для тега git: http://git-scm.com/docs/git-tag
Попробуйте это, он перечислит все теги вместе с аннотациями и 9 строк сообщения для каждого тега:
git tag -n9
также может использовать
git tag -l -n9
если перечислены конкретные теги:
git tag -l -n9 v3.*
(например, команда выше будет отображать теги, начинающиеся с "v3." )
-l, --list Введите теги с именами, которые соответствуют заданному шаблону (или все, если шаблон не указан). Выполнение тега git без аргументов также перечисляет все теги. Шаблон - это шаблон оболочки (то есть, с использованием fnmatch (3)). Можно указать несколько шаблонов; если любой из них соответствует, тег показан.
Отклик Longhor answer (используя git show
) близок к тому, что нужно в вопросе. Тем не менее, он также включает в себя фиксацию, указанную тегом, вместе с полным патчем для этой фиксации. Поскольку фиксация может быть несколько не связана с тегом (это только одна фиксация, которую тег пытается захватить), это может быть нежелательным. Я считаю, что следующее немного лучше:
for t in `git tag -l`; do git cat-file -p `git rev-parse $t`; done
Это далеко не красиво, но вы можете создать script или псевдоним, который делает что-то вроде этого:
for c in $(git for-each-ref refs/tags/ --format='%(refname)'); do echo $c; git show --quiet "$c"; echo; done
Только последнее сообщение тега:
git cat-file -p $(git rev-parse $(git tag -l | tail -n1)) | tail -n +6
Я предпочитаю делать это в командной строке, но если вы не против веб-интерфейса и используете GitHub, вы можете посетить https://github.com/user/repo/tags
и нажать "..." рядом с каждым тегом, чтобы отобразить его аннотацию.