Curso
Sou engenheiro de machine learning. Se há uma coisa essencial que aprendi, o controle de versão limpo é mais do que uma boa prática. Isso é fundamental para a reprodutibilidade e a colaboração.
As tags do Git são essenciais para marcar estados estáveis no código. Eles ajudam a fazer lançamentos, reverter para uma versão anterior ou integrar-se aos fluxos de trabalho de CI/CD. Quer você esteja trabalhando em código, dados ou novos modelos de machine learning, as tags do Git facilitam a sua vida, independentemente da sua formação ou função.
Neste tutorial, explicarei tudo o que você precisa saber para aplicar e dominar as tags do Git. Você está pronto para ver como as tags do Git podem simplificar sua vida de desenvolvimento? Vamos nos aprofundar no assunto.
>Se você quiser ter uma visão geral rápida do Git, recomendo que leiag GitHub e o Tutorial do Git para iniciantes.
O que é uma tag Git?
Uma tag do Git é uma maneira simples, mas poderosa, de marcar pontos específicos no histórico de um projeto. Pense nisso como se você colocasse uma nota adesiva em um compromisso específico, dizendo: "Isso é importante".
As tags do Git geralmente rotulam versões de lançamento, marcos ou pontos de verificação estáveis em sua base de código. Eles são referências fixas a um commit específico, mas não criam um novo commit. Quando você marca um commit, essa etiqueta permanece ancorada nele, a menos que você mova ou exclua manualmente a etiqueta.
O ramo mestre com duas tags Git. Imagem do autor.
Há dois tipos principais de tags:
- Etiquetas leves: Eles são como simples marcadores. Eles apontam para um commit específico sem nenhuma informação adicional. Eles são rápidos e fáceis de criar, geralmente usados para referência local ou depuração rápida, mas não armazenam metadados como o autor ou uma mensagem.
- Etiquetas anotadas: Eles são mais robustos e são armazenados como objetos Git completos. Elas incluem o nome, o e-mail, a data e a mensagem do autor da marcação e podem até ser assinadas criptograficamente. As tags com anotações são ideais para marcar pontos de liberação ou compartilhar tags com uma equipe.
>Para saber mais sobre o Git, recomendo que você confira os cursos Foundations of Git ou Intermediate Git.você pode conferir os cursos Foundations of Git ou Intermediate Git.
Aprenda hoje os fundamentos do Git
Como criar e gerenciar tags do Git
Criar e gerenciar tags Git é simples. Vamos detalhar os diferentes tipos de tags e como aplicá-los.
- Para usar as tags do Git, você já deve ter o Git instalado em seu computador. Você pode ler mais sobre a instalação do Git no Tutorial de instalação do Git.
- Outro pré-requisito é ter um repositório Git inicializado. Você pode ler mais em Como inicializar e configurar um repositório Git.
Criação de tags leves
Uma tag leve é como um ponteiro para um commit. Ela não inclui metadados, apenas o nome da tag e o commit para o qual ela aponta.
Para criar um, você pode executar:
git tag v1.0.0
Esse comando cria uma tag leve que aponta para o commit atual do HEAD
.
Como alternativa, você pode criar uma tag para um commit específico, fornecendo o hash do commit:
git tag v1.0.0 5c5fc06
As tags leves são úteis para referências rápidas e locais, especialmente em projetos de desenvolvimento individuais ou trabalhos temporários.
Criação de tags com anotações
As tags anotadas armazenam mais informações, como o nome do marcador, o e-mail, a data e a mensagem. Eles são armazenados como objetos Git completos e são ideais para marcar versões oficiais ou marcos.
Você pode criar um em execução:
git tag -a v1.0.0 -m "Release version 1.0.0"
Esse comando cria uma tag anotada chamada v1.0.0
com a mensagem "Release version 1.0.0"
.
Você também pode marcar um commit específico:
git tag -a v1.0.0 5c5fc06 -m "Tagging older commit"
As tags anotadas oferecem melhor documentação, integram-se bem às ferramentas de CI/CD e ajudam as equipes a rastrear o histórico de forma mais transparente.
Marcação de commits específicos
Às vezes, você precisa marcar um commit que não é o mais recente. Para isso, você pode primeiro buscar o histórico de commits e, em seguida, selecionar o hash do commit para o qual deseja criar uma tag.
Para obter o hash de confirmação, você pode executar o seguinte:
git log --oneline
Copie o hash do commit da lista e, em seguida, copie-o para você:
git tag -a v1.0.0 <commit-hash> -m "Tagging v1.0.0 release"
Verificação de tags criadas
Para listar todas as tags em seu repositório, use:
git tag
Se você quiser filtrar as tags, por exemplo, apenas as versões que começam com v1.
, use:
git tag -l 'v1.*'
Para exibir detalhes sobre uma tag específica, execute:
git show v1.0.0
Trabalhando com tags do Git
Depois de criar tags do Git, você frequentemente precisará compartilhar, atualizar ou interagir com elas como parte do seu fluxo de trabalho de desenvolvimento ou lançamento. Esta seção aborda as tarefas mais comuns para trabalhar com tags em repositórios locais e remotos.
Empurrando tags para um repositório remoto
As tags não são enviadas automaticamente para repositórios remotos quando você executa git push
. Você precisa pressioná-los explicitamente.
Para enviar uma única tag:
git push origin v1.0.0
Para enviar todas as tags de uma vez:
git push --tags
As tags devem ser enviadas para que seus colegas de equipeou pipelines de CI/CD possamacessá-las. Muitas vezes, as tags também são usadas como acionadores de implementação, especialmente seguindo fluxos de versão. Você pode ler mais sobre como fazer push e pull de ramificações no tutorial Git Push and Pull.
Exclusão de tags
Se quiser excluir uma tag, você pode fazer isso local e remotamente.
Para excluí-lo localmente, execute o seguinte:
git tag -d v1.0.0
Para excluir a mesma tag do repositório remoto:
git push origin --delete v1.0.0
Você também pode excluir diretamente a tag do GitHub ou da interface do usuário da Web do GitLab.
>Se você quiser saber mais sobre o GitHub e como usá-lo, recomendo os cursoses GitHub Foundations e GitHub Concepts.
Verificação de tags
Você pode fazer o checkout do seu repositório para o estado de uma tag específica executando:
git checkout v1.0.0
No entanto, isso coloca você em um estado deHEAD desvinculado. Isso significa que você não está mais em uma ramificação, e quaisquer novos commits não pertencerão a nenhuma ramificação, a menos que você crie uma explicitamente:
git checkout -b hotfix-v1.0.0
A verificação de uma tag específica ajuda a depurar ou revisar uma versão de lançamento específica sem afetar o ramo de desenvolvimento atual. Ele também é usado para criar seu aplicativo de produção a partir de uma versão específica, por exemplo, quando uma imagem do Docker precisa ser criada.
Marcação após um commit
Se precisar atualizar uma tag, por exemplo, alterando-a para um commit diferente ou alterando a mensagem, você pode simplesmente forçar uma atualização executando:
git tag -f -a v1.0.0 5c5fc06 -m "retagging"
Você também pode executar o mesmo procedimento sem um hash de confirmação para simplesmente adicionar a tag ao site atual HEAD
.
>Se você precisar de uma visão geral rápida dos comandos tradicionais do Git, recomendo o Complete Git Cheat Sheet.
Práticas recomendadas para o uso de tags do Git
Saber como criar e gerenciar tags é uma coisa, mas usá-las com eficiência é outra. Quando usadas com sabedoria, as tags podem melhorar o fluxo de trabalho, a documentação e a comunicação da equipe.
Uso de tags para controle de versão
As tags são perfeitaspara o controle de versão semântico, queé a forma recomendada de controle de versão de suas versões.
No controle de versão semântico, seus números de versão seguem o formato MAJOR.MINOR.PATCH
, por exemplo, v.1.2.0
.
MAJOR
são para alterações mais extensas e de ruptura, enquanto as versões MINOR
são para recursos recém-adicionados e PATCH
são para correções de bugs.
O controle de versão semântico é muito eficiente. Ele comunica claramente o escopo das alterações, ajuda os desenvolvedores a entender a compatibilidade e funciona bem com ferramentas automatizadas, como acionadores de CI/CD.
Use uma convenção de nomenclatura consistente. Escolha um padrão (por exemplo, sempre prefixe com v
) e siga-o em todas as suas versões.
Marcação de lançamentos
As etiquetas são ideais para marcar os principais estágios de lançamento do seu projeto. Aqui estão alguns tipos de tags úteis que você pode considerar:
v1.0.0-alpha
: Versão de teste internov1.0.0-beta
: Versão beta públicav1.0.0
: Liberação da produção final
Ao marcar esses estágios, você pode compartilhar compilações de teste com outras pessoas mais facilmente, reverter para versões anteriores e manter um histórico limpo das implementações de produção.
Você pode aprimorar ainda mais o processo usando tags anotadas para versões a fim de capturar o contexto e a documentação adequados.
Evitar o uso excessivo de tags
Por mais úteis e poderosas que sejam as tags, elas podem se tornar inúteis quando usadas em excesso. As tags devem marcar apenas pontos significativos no histórico do seu projeto, como versões estáveis, conclusão de recursos importantes, marcos ou prazos.
A marcação de todos os commits atrapalha o repositório e anula o objetivo da navegação rápida. Mantenha-o limpo e com propósito!
Uma boa regra geral é que ele provavelmente não precisa de uma tag se você não o implantaria ou anunciaria.
Solução de problemas com as tags do Git
Mesmo com as práticas recomendadas, às vezes você encontrará problemas ao trabalhar com tags do Git, especialmente ao trabalhar com equipes ou sincronizar com repositórios remotos. Esta seção aborda como lidar com os problemas mais comuns.
Manipulação do estado HEAD desanexado
Quando você faz check-out de uma tag específica usando:
git checkout v1.0.0
O Git coloca você em um estado de HEAD
desapego, conforme mencionado anteriormente. Isso significa que você não está em uma ramificação, portanto, se fizer um commit, ele não pertencerá a nenhuma ramificação e poderá ser perdido, a menos que você aja.
Você pode corrigir isso criando uma ramificação executando o seguinte:
git checkout -b hotfix-v1.0.0
Agora você está trabalhando em uma ramificação e pode confirmar e enviar alterações como de costume.
Resolução de conflitos de tags
Os conflitos podem ocorrer quando o mesmo nome de tag aponta para diferentes commits locais e remotos.
Isso geralmente ocorre quando você exclui e recria uma tag localmente ou quando outra pessoa força uma tag.
Há duas opções para resolver esse problema.
Opção 1: Excluir e reinserir a tag
git tag -d v1.0.0
git push origin --delete v1.0.0
git tag -a v1.0.0 -m "Corrected tag"
git push origin v1.0.0
Opção 2: Forçar o envio da tag atualizada
Se você tiver certeza de que sua tag local é a correta e tiver permissão:
git push origin -f v1.0.0
Mas tenha cuidado com essa opção, pois o forçamento de barra pode substituir as alterações feitas por outros. Use-o somente quando você estiver confiante ou depois de se comunicar com sua equipe.
Conclusão
As tags do Git são uma ferramenta bastante poderosa quando usadas com sabedoria. Neste tutorial, você aprendeu:
- O que são tags Git e quando usá-las
- Como aplicar tags do Git em seu repositório
- Práticas recomendadas para usar tags do Git
- Como solucionar problemas comuns ao trabalhar com tags do Git
Seja lançando modelos de machine learning, enviando atualizações para um produto de dados ou colaborando em uma equipe, as tags ajudam você a marcar momentos significativos na linha do tempo do seu projeto. Eles mantêm as coisas organizadas, reproduzíveis e fáceis de reverter ou implementar.
Eu uso as tags Git o tempo todo. Eles me poupam horas, permitindo que eu reverta para versões estáveis quando surgem bugs ou acione fluxos de trabalho automatizados de CI/CD. Eu os utilizo para marcar e versionar imagens do Docker para compilações de produção, garantindo que tudo o que eu envio seja totalmente rastreável e documentado.
Portanto, comece a usar as tags hoje mesmo e transforme seu fluxo de trabalho do Git!
Aprenda hoje os fundamentos do Git
Perguntas frequentes
Para que é usada uma tag Git?
Uma tag Git marca pontos específicos no histórico de um repositório, geralmente para versões ou marcos importantes.
Qual é a diferença entre tags Git leves e anotadas?
As tags leves são referências simples a um commit, enquanto as tags anotadas armazenam metadados como o autor, a data e a mensagem.
O que acontece quando faço check-out de uma tag no Git?
Você entra em um estado de "HEAD desvinculado", o que significa que não está em uma ramificação, e os commits não serão salvos em uma ramificação, a menos que você crie uma.
Como faço para criar uma tag Git?
Use git tag
para uma tag leve ou git tag -a -m "message"
para uma tag anotada.
As tags do Git são comumente usadas em fluxos de trabalho de CI/CD?
Sim. As tags podem acionar compilações ou implementações automatizadas em pipelines de CI/CD, especialmente ao marcar versões de lançamento.
Sou um engenheiro de nuvem com sólida base em engenharia elétrica, aprendizado de máquina e programação. Minha carreira começou na área de visão computacional, com foco na classificação de imagens, antes de fazer a transição para MLOps e DataOps. Sou especialista em criar plataformas MLOps, dar suporte a cientistas de dados e fornecer soluções baseadas em Kubernetes para otimizar os fluxos de trabalho de aprendizado de máquina.