Conceitos-chave

Tag

  • Em inglês: tag (uma etiqueta — um marcador que você prende em algo para identificá-lo)

Uma tag é uma referência a um ponto específico do histórico do repositório. As tags servem para sinalizar marcos importantes ou releases no ciclo de vida do projeto. Diferente das branches, as tags são estáticas e não mudam depois de criadas.

As tags costumam ser usadas para:

  1. Versionar releases: Quando uma nova versão do software está pronta para ser lançada, cria-se uma tag para marcar esse ponto específico no histórico de commits. Por exemplo, ao lançar a versão 2.3.1 de um projeto, é possível criar uma tag chamada v2.3.1 para referenciar o commit que representa essa release. Esses números de versão costumam seguir as convenções de versionamento semântico.

    O prefixo v não é obrigatório, mas costuma ser usado para indicar que a tag representa um número de versão. Isso permite que branches chamadas X.Y.Z coexistam com tags chamadas vX.Y.Z.
  2. Marcar marcos importantes: As tags também podem marcar momentos significativos no desenvolvimento do projeto, como a conclusão de uma funcionalidade grande ou a correção de um bug crítico. Por exemplo, uma tag chamada feature-x-completion pode ser criada para marcar o commit que introduz uma nova funcionalidade.

  3. Referência rápida: As tags oferecem um jeito prático de referenciar um ponto específico do histórico do repositório sem precisar lembrar nem procurar o hash do commit. Isso é especialmente útil quando você precisa alternar rapidamente entre versões diferentes do projeto.

Exemplos

Crie uma tag simples:

git tag v1.0.0

Crie uma tag anotada com uma mensagem:

git tag -a v1.2.0 -m "Release 1.2.0"

Liste todas as tags:

git tag

Faça checkout de uma tag específica:

git checkout v1.2.0

Compare as alterações entre uma tag e o HEAD atual:

git diff v1.2.0..HEAD