Como listar todas as tags do Git?

No meu repository, criei tags usando os seguintes comandos.

git tag v1.0.0 -m 'finally a stable release' git tag v2.0.0 -m 'oops, there was still a major bug!' 

Como você lista todas as tags no repository?

 git tag 

deve ser suficiente. Veja a página man do git tag


Você também tem:

 git tag -l  

Listar tags com nomes que correspondem ao padrão fornecido (ou todos, se nenhum padrão for fornecido).
Digitar “git tag” sem argumentos também lista todas as tags.


Mais recentemente (” Como classificar tags git? “, Para Git 2.0+)

 git tag --sort= 

Classifique em uma ordem específica.

O tipo suportado é:

  • refname ” (ordem lexicográfica),
  • version:refname ” ou ” v:refname ” (nomes de tags são tratados como versões).

Prefira “-” para inverter a ordem de sorting.


Isso lista ambos:

  • Tags anotadas : objects completos armazenados no database do Git. Eles são checksum; contém o nome do marcador, e-mail e data; tem uma mensagem de marcação; e pode ser assinado e verificado com o GNU Privacy Guard (GPG).
  • tags leves : ponteiro simples para um commit existente

Observação: o artigo do git ready sobre marcação desaprova a tag lightweight.

Sem argumentos, o git tag cria uma tag “leve” que é basicamente uma ramificação que nunca se move.
As tags leves ainda são úteis, talvez para marcar uma versão válida (ou ruim) ou um grupo de confirmações que você pode precisar usar no futuro.
No entanto, você provavelmente não quer empurrar esses tipos de tags .

Normalmente, você deseja pelo menos transmitir a opção -a para criar uma tag não assinada ou assinar a tag com sua chave GPG por meio das opções -s ou -u.


Dito isto, Charles Bailey salienta que um ” git tag -m "..." ‘na verdade implica uma tag (não-anotada) adequada (opção’ -a ‘), e não uma tag leve. Então você está bem com o seu comando inicial.


Isso difere de:

 git show-ref --tags -d 

Que lista as tags com suas confirmações (consulte ” Lista de tags do Git, exibir hashes de confirmação sha1 “).
Observe o -d para desreferenciar o object de tag anotado (que possui seu próprio commit SHA1) e exibir o commit marcado real.

Da mesma forma, git show --name-only a tag e o commit associado.

Para listar as tags, eu prefiro:

 git tag -n 

O sinalizador -n exibe a primeira linha da mensagem de anotação junto com a tag ou a primeira linha de mensagem de confirmação, se a tag não for anotada.

Você também pode fazer git tag -n5 para mostrar as 5 primeiras linhas da anotação.

Também git show-ref é bastante útil, para que você possa associar diretamente tags a commits correspondentes:

 $ git tag osgeolive-6.5 v8.0 ... $ git show-ref --tags e7e66977c1f34be5627a268adb4b9b3d59700e40 refs/tags/osgeolive-6.5 8f27e65bddd7d4b8515ce620fb485fdd78fcdf89 refs/tags/v8.0 ... 

Tente fazer o git tag deve ser o suficiente se não tentar fazer git fetch então git tag .

Para ver detalhes sobre a tag mais recente disponível, às vezes uso:

 git show `git describe` --pretty=fuller 

E aqui está como você encontra as tags remotas:

git ls-remote --tags origin

Se você quiser verificar seu nome de tag localmente, você tem que ir para o caminho onde você criou a tag (caminho local). Significa onde você colocou seus objects. Então digite o comando:

 git show --name-only  

Ele mostrará todos os objects sob esse nome de tag. Eu estou trabalhando em Teradata e object significa visão, tabela etc

Você pode listar todas as tags existentes ou você pode filtrar a lista com a git tag -l 'v1.1.*' , Onde * age como um caractere curinga. Ele retornará uma lista de tags marcadas com v1.1 .

Você notará que quando você chama git tag você não consegue ver o conteúdo de suas annotations. Para visualizá-los, você deve adicionar -n ao seu comando: git tag -n2 .

$ git tag -l -n2 v1.0 versão de lançamento 1.0 v1.1 versão de lançamento 1.1

O comando lista todas as tags existentes com no máximo 3 linhas de sua mensagem de tag. Por padrão, apenas mostra a primeira linha. Para mais informações, verifique também este artigo relacionado a tags .

Listar as tags disponíveis no Git é simples. Basta digitar git tag (com opcional -l ou --list ).

 $ git tag v5.5 v6.5 

Você também pode procurar por tags que correspondam a um padrão específico.

 $ git tag -l "v1.8.5*" v1.8.5 v1.8.5-rc0 v1.8.5-rc1 v1.8.5-rc2 

Obtendo a tag mais recente no repository git

O comando encontra a tag mais recente que pode ser acessada de uma confirmação. Se a tag apontar para o commit, somente a tag será mostrada. Caso contrário, sufixará o nome da tag com o número de confirmações adicionais na parte superior do object marcado e o nome do object abreviado da confirmação mais recente.

 git describe 

Com --abbrev definido como 0 , o comando pode ser usado para encontrar o tagname mais próximo sem qualquer sufixo:

 git describe --abbrev=0 

Outros exemplos:

 git describe --abbrev=0 --tags # gets tag from current branch git describe --tags `git rev-list --tags --max-count=1` // gets tags across all branches, not just the current branch 

Como remover tags git locais que não existem no remoto

Para simplificar, se você está tentando fazer algo como git fetch -p -t , ele não funcionará a partir da versão 1.9.4 git.

No entanto, existe uma solução simples que ainda funciona nas versões mais recentes:

 git tag -l | xargs git tag -d // remove all local tags git fetch -t // fetch remote tags