Diferença de TAG e BRANCH em GIT

Diferença de TAG e BRANCH em GIT

As ferramentas de versionamento de software adotam, em geral, as nomenclaturas dos conceitos de suas áreas de aplicação. Dois conceitos frequentemente encontrados, porém com pequenas diferenças de aplicação conceitual nos softwares de controle de versão são: TAG e BRANCH.

Para esclarecer seu uso, pergunto, você saberia dizer qual a diferença conceitual e de usabilidade de TAG e BRANCH em GIT?

Resposta curta:

  • a tagetiqueta em Inglês,é apenas uma marcação, em geral, dentro de um branch específico que define uma situação em um determinado momento.
  • o branchramo em Inglês, tradicional é uma ramificação, ou organização experimental, em paralelo a outro(s) ramo(s) que potencialmente será incorporado ao desenvolvimento principal, ou melhor especificando, ao branch principal.

A tag costuma marcar um releaselançamento em Inglês, uma versão ou outro marco do projeto similar. Então a tag é apenas um apontador para um commit específico enquanto que um branch é um caminho, um galho de desenvolvimento.

A tag é apenas um nome que se dá para um estado do desenvolvimento. Desta forma torna-se fácil acessar aquele estado sempre que necessário.

No Git não há “custo” em definir uma tag, elas são uma marcação simbólica e não ocupam espaço no repositório. Você não altera o que está na tag. Ela será usada eventualmente, quando há algum evento importante no desenvolvimento que necessite desta marcação para voltar nela outras vezes. Normalmente este evento é um release.

O trabalho de desenvolvimento sempre é realizado em cima de branches através dos commits.

É no branch que se faz o mergemesclagem, do estado / alterações anteriores com o que foi desenvolvido “agora”.

Um branch vai sendo acrescido de evoluções do desenvolvimento.

Uma bora prática é a criação de um novo branch, sempre que possível, quando uma nova linha de desenvolvimento vai ser iniciada.

A imagem a seguir mostra visualmente o histórico de um repositório Git com suas Tags e Branches:

Git History

Pode-se também definir um branch como uma ramificação da sua “árvore” principal de desenvolvimento, geralmente criado para se trabalhar no desenvolvimento de correções ou novas implementações.

Ao ser finalizado o trabalho para aquele contexto, podemos fazer um merge para a ramificação principal do seu projeto.

O branch fica com a responsabilidade de receber as modificações – commits, durante o contexto do desenvolvimento, a cada nova funcionalidade é aconselhável gerar novas branches. Quando o projeto já está maduro e estável é gerada uma nova release que será armazenada ou marcada por uma TAG do repositório.

Após compreender a diferença entre Tag e Branch no Git, mas se você não conhece os comandos básicos e diários de trabalho com o ele, como commit, add, clone; leia o seguinte post: Git Básico.

Se possui alguma dúvida ou necessita de ajuda com seu trabalho com Git, deixe um comentário.

Mantenha-se atualizado

Não esqueça de me seguir no Twitter e assinar o Canal Mazer.dev no Youtube para receber atualizações de novos artigos, vídeo aulas e cursos gratuitos em desenvolvimento e engenharia de software.

Deixe uma resposta

Ademir Mazer Junior

Engenheiro de Software. desenvolvedor com aproximadamente 30 anos de experiência. Professor universitário. Especialista em Arquitetura de Software, PHP, Laravel, Processos de Desenvolvimento de Software.