git tag
Cria, lista e exclui tags
O comando 'git tag' dá um nome fixo a um commit, normalmente uma versão como v1.0. Diferente de um branch, uma tag nunca se move. Uma tag leve é só um nome; uma tag anotada (-a) é um objeto completo com quem a criou, uma data e uma mensagem, e é o tipo recomendado para versões. Tags não são enviadas automaticamente: envie-as com git push origin <tag>.
Sinopse
git tag [-a | -s] [-f] [-m <msg>] <tagname> [<commit>]
git tag -d <tagname>...
git tag [-n[<num>]] -l [<pattern>...]Opções
Escolhendo a opção certa
Leve versus anotada
Dois tipos de tags
| Comando | Guarda | Usar para |
|---|---|---|
git tag v1.0 | Só o nome | Marcadores pessoais |
git tag -a v1.0 -m "..." | Autor, data, mensagem | Versões publicadas |
Tag versus branch
Os dois nomeiam um commit
| Comando | Avança a cada commit? | Enviada pelo git push? |
|---|---|---|
Branch | Sim | Sim (o branch atual) |
Tag | Nunca | Não, envie explicitamente |
Exemplos
Marcar o commit atual
git tag v1.0Uma tag leve chamada v1.0.
Tag anotada
git tag -a v1.0 -m "First release"Uma tag com autor, data e mensagem.
Enviar uma tag
git push origin v1.0Compartilha a tag no remoto.
Listar tags
git tag -l "v1.*"Lista as tags que correspondem a um padrão.
Exemplos de fluxos de trabalho
git switch main && git pullEstar no main mais recente
git tag -a v1.0 -m "First release"Criar a tag da versão
git push origin v1.0Compartilhá-la
Solução de problemas
fatal: tag 'v1.0' already exists
Causa: O nome já está em uso
Escolha outro nome, ou exclua-a antes (git tag -d v1.0)
Minha tag não está no GitHub
Causa: git push não envia as tags
git push origin v1.0, ou git push --tags
Uma tag excluída volta depois do fetch
Causa: Ela ainda existe no remoto
Exclua-a lá também: git push origin --delete v1.0
Dicas e armadilhas
Boas práticas
- ✓Use tags anotadas para versões.
- ✓Siga o versionamento semântico (v1.2.3).
- ✓Nunca mova nem reutilize uma tag depois de publicada.
Erros comuns
- ✗Esperar que git push envie as tags — envie-as explicitamente ou use --follow-tags.
- ✗Usar tags leves para versões: elas não registram autor, data nem mensagem.
- ✗Mover uma tag que outros já baixaram.
Perguntas frequentes
git switch --detach v1.0, ou crie um branch a partir dela: git switch -c hotfix v1.0.
git push --tags (ou git push --follow-tags para tags anotadas em commits enviados).
Ele nomeia um commit a partir da tag mais próxima, p. ex. v1.0-3-g1a2b3c4.