Skip to content
Latchkey

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.

Creating and pushing a tag
git tag -a v1.2.0 -m "Release 1.2.0"
git push origin v1.2.0

Tags 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.

Guias relacionados