As tags no Git são usadas para marcar pontos específicos na história do repositório, geralmente releases ou versões importantes de um projeto.
- Lightweight Tag
- Marcador simples, sem metadados adicionais.
- Recomendada para uso local ou temporário.
# Criando uma lightweight tag
git tag "1.0.0"- Annotated Tag
- Armazena informações adicionais: autor, data e mensagem.
- Ideal para releases ou versões oficiais.
# Criando uma annotated tag
git tag -a "1.0.0" -m "Versão 1.0.0 - Release inicial"# Listar todas as tags do projeto
git tag💡 Dica: Para ver tags com padrões específicos:
git tag -l "v1.*"# Enviar todas as tags anotadas para o remoto
git push origin --tags💡 Observação: Lightweight tags não são enviadas por padrão. Use --tags para garantir que todas as tags sejam compartilhadas.
Checkout de uma Tag
git checkout 1.0.0
⚠️ Atenção: Isso coloca o repositório em detached HEAD. Se quiser fazer alterações, crie uma branch a partir da tag:
git checkout -b nova-branch 1.0.0Excluindo Tags
# Local
git tag -d 1.0.0
# Remota
git push origin :refs/tags/1.0.0- Evite sobrescrever tags remotas
Remova primeiro se precisar atualizar:
git push origin :refs/tags/1.0.0 # remove do remoto
git push origin 1.0.0 # envia novamente- Use tags para releases, não para commits intermediários
Tags devem marcar pontos importantes e estáveis do projeto.
- Combine tags com branches de release
Marque releases na branch main ou release para maior confiabilidade.
- Versionamento Semântico (SemVer)
MAJOR.MINOR.PATCH indica a natureza das alterações:
2.0.0→ mudanças incompatíveis2.1.0→ novas funcionalidades compatíveis2.1.1→ correções de bugs
- Evite tags “móveis”
Crie tags somente em commits definitivos.
- Documente a tag
Use mensagens descritivas em annotated tags:
git tag -a "1.2.0" -m "Adiciona feature X e corrige bug Y"flowchart TD
GR[Git Repository] -->|Tag| Tag[Lightweight / Annotated]
Tag -->|Push| Remote[Servidor Remoto]
Tag -->|Checkout| WD[Working Directory]