O Que É uma Git Tag?
Uma tag é um nome fixo e amigável para humanos que aponta para um commit específico, mais frequentemente usado para marcar um release.
Uma tag é um rótulo estável que você anexa a um commit para poder se referir a ele pelo nome para sempre. Diferente de uma branch, uma tag não se move conforme novos commits chegam, o que a torna ideal para marcar o código exato que se tornou a versão 1.0 ou qualquer outro marco.
Tags lightweight e anotadas
Uma tag lightweight é apenas um nome apontando para um commit. Uma tag anotada armazena metadados extras: o tagger, uma data, uma mensagem, e pode ser assinada. Tags anotadas são recomendadas para releases porque carregam contexto e são objetos de primeira classe na história.
Criando e enviando tags
Você cria uma tag anotada e faz push dela explicitamente, já que tags não são enviadas por padrão.
git tag -a v1.2.0 -m "Release 1.2.0"
git push origin v1.2.0Tags não se movem
Uma vez colocada, uma tag continua apontando para o mesmo commit independentemente de novo trabalho. Essa permanência é exatamente por que tags são usadas para versões: qualquer pessoa pode fazer checkout de v1.2.0 anos depois e obter o código preciso que foi entregue, byte por byte.
Tags em CI/CD
Tags são um gatilho comum para pipelines de release. Um workflow pode escutar por tags enviadas que correspondam a um padrão de versão e responder fazendo o build de artefatos, publicando pacotes e criando um release. Isso separa de forma limpa os commits do dia a dia dos releases intencionais e nomeados.
Boas práticas de tagging
- Prefira tags anotadas para releases para que carreguem metadados.
- Siga um esquema de versão consistente, como o versionamento semântico.
- Lembre-se de fazer push das tags; elas não viajam com um push normal.
- Dispare workflows de release em padrões de tag como v*.
Principais conclusões
- Uma tag é um nome fixo para um commit específico, ideal para releases.
- Tags anotadas carregam metadados e podem ser assinadas; as lightweight não.
- Fazer push de uma tag de versão é um gatilho comum para pipelines de release.