Quero que o git liste todas as tags, juntamente com a anotação completa ou a mensagem de confirmação. Algo assim está próximo:
git tag -n5
Isso faz exatamente o que eu quero, exceto que ele aparecerá apenas nas 5 primeiras linhas da mensagem de marca.
Eu acho que posso apenas usar um número muito grande. Qual é o número mais alto que posso usar aqui? É o mesmo em todos os computadores?
ATUALIZAÇÃO : Eu tive muito tempo para pensar sobre isso e agora acho que não quero necessariamente mostrar a totalidade de cada mensagem se algumas delas são extraordinariamente longas. Eu realmente não tinha nenhuma necessidade em particular que exigisse que eu visse mensagens massivas (além da minha propensão a ficar muito tempo em tudo o que escrevo, incluindo mensagens de etiqueta). Eu simplesmente não gostei da ideia de que isso não iria necessariamente me mostrar a mensagem inteira, pois isso me fez sentir como se estivesse escondendo informações de mim. Mas muita informação também pode ser uma coisa ruim.
git tag -n
fiz isso por mimgit tag -n
somente imprime a primeira linha da anotação, de acordo com a página de manual.Respostas:
Tente fazer isso, listará todas as tags, juntamente com anotações e 9 linhas de mensagem para cada tag:
também pode usar
se houver tags específicas a serem listadas:
(por exemplo, o comando acima exibirá apenas tags começando com "v3".)
-l, --list Listar tags com nomes que correspondam ao padrão fornecido (ou todos, se nenhum padrão for fornecido). Executar "tag git" sem argumentos também lista todas as tags. O padrão é um curinga do shell (ou seja, corresponde ao uso de fnmatch (3)). Padrões múltiplos podem ser dados; se algum deles corresponder, a tag será mostrada.
fonte
-l
opção é filtrar um padrão. Não vejo como isso seria útil aqui. Estou esquecendo de algo?-l
é totalmente supérfluo aquiCurto e grosso. Isso listará até 99 linhas de cada anotação de tag / mensagem de confirmação. Aqui está um link para a documentação oficial da tag git .
Agora, acho que a limitação de exibir apenas 99 linhas por tag é realmente uma coisa boa, pois na maioria das vezes, se houvesse realmente mais de 99 linhas para uma única tag, você não gostaria de ver todo o resto as linhas você faria? Se você quiser ver mais de 99 linhas por tag, sempre poderá aumentar isso para um número maior.
Quero dizer, acho que pode haver uma situação ou razão específica para querer ver mensagens massivas de tags, mas em que momento você não deseja ver a mensagem inteira? Quando tem mais de 999 linhas? 10.000? 1.000.000? O que quero dizer é que normalmente faz sentido limitar o número de linhas que você veria, e esse número permite definir isso.
Como estou argumentando sobre o que você geralmente quer ver quando olha suas tags, provavelmente faz sentido definir algo como um apelido (do comentário de Iulian Onofrei abaixo):
git config --global alias.tags 'tag -n99'
Quero dizer, você realmente não precisa digitar
git tag -n99
toda vez que deseja ver suas tags, não é? Uma vez que o alias esteja configurado, sempre que você quiser ver suas tags, basta digitargit tags
no seu terminal. Pessoalmente, prefiro levar as coisas um passo adiante e criar aliases de bash ainda mais abreviados para todos os meus comandos comumente usados. Para esse fim, você pode adicionar algo assim ao seu arquivo .bashrc (funciona em Linux e ambientes similares):alias gtag='git tag -n99'
Quando você quiser ver suas tags, basta digitar
gtag
. Outra vantagem de seguir o caminho do alias (aliases do git ou aliases do bash ou qualquer outra coisa) é que agora você já tem um local em que pode adicionar mais personalizações à sua maneira pessoal, geralmente quer que suas tags sejam mostradas para você (como classificar eles de certas maneiras, como no meu comentário abaixo, etc). Depois de superar a dificuldade de criar seu primeiro alias, agora você perceberá como é fácil criar mais deles para outras coisas que você gosta de trabalhar de maneira personalizada, comogit log
, mas vamos salvar esse para uma pergunta / resposta diferente .fonte
git config --global alias.tags 'tag -n99'
alias gtag='git for-each-ref --format="%(refname:short) %(taggerdate) %(subject) %(body)" refs/tags | sort -V'
A resposta de Mark Longair (usando
git show
) é próxima do desejado na pergunta. No entanto, também inclui o commit apontado pela tag, juntamente com o patch completo para esse commit. Como a confirmação pode não estar relacionada à tag (é apenas uma confirmação que a tag está tentando capturar), isso pode ser indesejável. Eu acredito que o seguinte é um pouco melhor:fonte
Está longe de ser bonito, mas você pode criar um script ou um alias que faça algo assim:
fonte
git for-each-ref refs/tags/ --format='%(refname)'
comgit tag -l
?git tag
é porcelana egit for-each-ref
canalização, portanto a saída desse último deve ser mais estável para scripts.Apenas mensagem da última tag:
fonte
git cat-file -p <tag> | tail -n +6
Use a opção --format
fonte
Prefiro fazer isso na linha de comando, mas se você não se importa com uma interface da Web e usa o GitHub, pode visitar
https://github.com/user/repo/tags
e clicar no "..." ao lado de cada tag para exibir sua anotação.fonte