Oii Levi, tudo bem?
- Tags:
As tags são usadas marcar pontos específicos na história do seu repositório, geralmente para indicar versões importantes do seu software. Existem dois tipos de tags:
- Annotated Tags: Contêm informações adicionais como a mensagem da tag, a data, e quem a criou. São recomendadas para marcar versões de lançamento.
- Lightweight Tags: São basicamente um ponteiro para um commit específico, sem informações adicionais.
- Releases:
As releases no GitHub são um passo além das tags. Elas são baseadas em tags, mas oferecem funcionalidades adicionais. Quando você cria uma release, você pode:
- Adicionar notas de lançamento (release notes) que descrevem as mudanças feitas.
- Anexar arquivos binários ou outros artefatos que acompanham a versão.
- Oferecer um changelog detalhado e links para ver as diferenças entre versões.
Diferença Prática
- Tag: Apenas marca um commit específico.
- Release: Baseada em uma tag, mas inclui documentação, arquivos adicionais, e uma página dedicada no GitHub.
Exemplo Prático
Imagina que você tá lançando a versão 1.0.0 do seu projeto. Você pode criar uma tag para marcar esse ponto na história do seu repositório:
git tag -a v1.0.0 -m "Versão 1.0.0"
Depois, no GitHub, você pode criar uma release baseada nessa tag. Na página de release, você pode adicionar notas sobre o que mudou, anexar arquivos binários (como um executável ou um pacote), e oferecer um changelog detalhado.
- Sobre os Commits
É normal que a release mostre os mesmos commits que a tag, pois a release é baseada na tag. A diferença é que a release adiciona mais contexto e informações úteis para quem for utilizar essa versão do seu projeto.
Espero ter ajudado.
Um abraço e bons estudos.