O sistema de controle de versão Git é um assunto comumente abordado aqui no blog, e hoje iremos falar de mais uma feature desse sistema: o uso de tags.

O que são as tags do Git?

As tags do Git são uma espécie de marcação que podemos adicionar em um commit específicio do repositório. Ao adicionar essa marcação, podemos nos referir àquele commit específico usando a tag, o que pode ser útil quando trabalhamos com diferentes releases de código, por exemplo.

Como criar tags

Pra testar a criação de tags, eu iniciei um repositório do Git com dois arquivos de texto, fiz o commit inicial, alterei esses dois arquivos, fiz outro commit, criei um terceiro arquivo de texto e também fiz o commit dele. Com isso o meu histórico de commits ficou igual ao mostrado abaixo:

bb69a2e (HEAD -> master) criado arquivo 3
393a7ba alterações nos arquivos 1 e 2
356f307 criados arquivos 1 e 2

Para criar uma tag, usamos a sintaxe git tag <nome da tag> <hash do commit>. Dessa forma, o código git tag tag1 356f307 irá adicionar uma tag chamada tag1 no meu primeiro commit já que estou usando o código da hash desse commit. Após a adição da tag, podemos visualizá-la no histórico de commits:

bb69a2e (HEAD -> master) criado arquivo 3
393a7ba alterações nos arquivos 1 e 2
356f307 (tag: tag1) criados arquivos 1 e 2

Além de adicionar o nome da tag, existem outras informações que podemos adicionar a ela, como uma mensagem de anotação e o autor. Todas as informações que podem ser colocadas na criação destas marcações estão descritas na documentação do git.

Aqui, usaremos o comando git tag -a tag2 -m "Melhor Versão" 393a7ba para adicionar uma tag anotada ao segundo commit. Essa tag anotada (especificada pelo parâmetro -a) terá o nome tag2 e uma mensagem “Melhor Versão”.

Ao olhar o histórico de commits, vemos que a tag2 também aparece agora.

bb69a2e (HEAD -> master) criado arquivo 3
393a7ba (tag: tag2) alterações nos arquivos 1 e 2
356f307 (tag: tag1) criados arquivos 1 e 2

Usando tags

Agora que já criamos as tags, podemos utilizá-las sempre que for preciso referenciar o commit associado a elas. O commit 356f307, por exemplo, pode ser acessado através da tag tag1, enquanto o commit 393a7ba pode ser acessado através da tag2.

Sendo assim o comando git reset tag2 irá retornar o código para o estado onde ele se encontrava no commit representado pela tag2, ou seja, o commit 393a7ba.

Outros comandos relacionados

Depois de criar algumas tags, podemos listá-las usando o comando git tag, ou o comando git tag -n que mostrará além das tags existentes as mensagens associadas às tags, se estas existirem, ou a mensagem do commit ao qual a tag está associada.

Para deletar uma tag, podemos usar o comando git tag -d <nome da tag> e para enviar as tags para o repositório remoto, podemos usar o comando git push --tags para enviar todas as tags, ou o comando git push <nome da tag> para enviar uma tag específica.

Considerações finais

As tags do Git são uma maneira útil de marcar pontos importantes em no histórico de commits do seu projeto, permitindo que você acesse pontos específicos do histórico de desenvolvimento do seu projeto de maneira rápida.

Veja também

Pacote de desenvolvedor para estudantes do GitHub

Dicas para um bom README de perfil no GitHub