A ramificação é uma ferramenta fundamental no Git, permitindo trabalhar em novas funcionalidades ou partes do software sem desestabilizar a base de código principal. Funciona como um espaço seguro para desenvolver, experimentar e escolher como integrar as alterações feitas.
Como desenvolvedor, essa funcionalidade te dá a liberdade de implementar mudanças significativas no código-fonte, com a possibilidade de incorporar ou descartar essas alterações do projeto. É uma maneira eficiente de isolar o trabalho em andamento e testar novas abordagens.
Se você já utiliza o Git, provavelmente sabe que existem diversas formas de criar ramificações. Para desenvolvedores iniciantes, aprender a dominar ferramentas de controle de versão como o Git economizará muito tempo e tornará a experiência de desenvolvimento mais interessante e produtiva.
Este artigo foi criado para orientar você na criação de ramificações Git de forma eficiente, integrando esse processo ao seu fluxo de trabalho. Ao final da leitura, você terá habilidades sólidas para gerenciar seus repositórios no GitHub com confiança.
Observação: Caso você seja um desenvolvedor iniciante, é recomendável configurar sua conta no GitHub antes de continuar. Se você já passou por essa etapa, siga para as instruções. Uma revisão nunca é demais, então sinta-se à vontade para atualizar seus conhecimentos.
O que são Ramificações (Branches) no Git?
Fonte: atlassian.com
Uma ramificação no Git é uma cópia do seu repositório que se desvia do projeto principal (disponível em todos os sistemas modernos de controle de versão). Essencialmente, você está se movendo da sua linha principal de desenvolvimento para um espaço isolado onde pode trabalhar sem afetar a linha original do projeto.
Essa técnica é amplamente utilizada por diversas ferramentas de controle de versão (VCS), e consiste em criar uma nova cópia do código-fonte. Em projetos maiores, essa replicação pode levar algum tempo. No entanto, essa prática te oferece a oportunidade de experimentar e testar mudanças em seu código.
O modelo de ramificação do Git é considerado um diferencial, colocando o Git em um patamar superior entre outras ferramentas VCS. O modelo operacional do Git é simples, tornando as operações de ramificação quase instantâneas, bem como a alternância entre várias ramificações. Dominar o modelo de ramificação do Git desbloqueará recursos poderosos que podem aprimorar suas habilidades de desenvolvimento. Mas, afinal, qual é o benefício das ramificações?
Por que usar Ramificações Git?
As ramificações do Git são cruciais no sistema de controle de versão do Git. Aqui estão alguns motivos que justificam a sua utilização:
✅ Desenvolvimento Paralelo: O software moderno é complexo e muitos desenvolvedores frequentemente trabalham juntos para construí-lo. Ramificações permitem que diferentes desenvolvedores trabalhem em recursos distintos, ou na correção de bugs, sem conflitos. Cada ramificação é uma via para uma nova linha de desenvolvimento, e você pode alternar facilmente entre ramificações enquanto trabalha em recursos específicos.
✅ Colaboração: Ramificações Git facilitam o trabalho colaborativo em uma base de código comum. Você pode criar novas ramificações, implementar mudanças e enviar para o repositório compartilhado, onde outros desenvolvedores podem revisar suas contribuições antes de integrá-las à ramificação principal.
✅ Experimentação: Use ramificações Git para testar novos recursos sem afetar a ramificação principal. É a sua chance de experimentar novas abordagens para resolver problemas. Se as mudanças no código funcionarem corretamente, você pode integrá-las à ramificação principal.
✅ Gerenciamento de Lançamentos: Utilize ramificações para gerenciar lançamentos. Você pode criar uma ramificação específica para cada versão do seu projeto, facilitando a correção de bugs e a implementação de mudanças sem impactar a linha de desenvolvimento principal.
✅ Versionamento: Ramificações Git permitem o versionamento do seu software. Cada ramificação pode representar uma nova versão. Desenvolvedores podem usar ramificações para cada versão, facilitando o acompanhamento das alterações e o gerenciamento de diferentes versões do código.
Primeiros Passos com Git – Uma Revisão
Agora que você entende a importância das ramificações, vamos entender como usá-las.
Para seguir, você deve ter sua conta no GitHub configurada. Caso contrário, faça isso. Esta seção é prática.
O comando git checkout
no Git é usado para alternar entre diferentes versões da sua entidade de destino. Em algumas comunidades de desenvolvedores, o termo ‘check-out’ refere-se à execução do comando checkout
. Este comando opera em três entidades: ramificações (branches), arquivos e commits.
Acessando uma Ramificação
Utilize o comando git branch
para criar ramificações, navegando entre elas com git checkout
. Ao acessar uma ramificação, você atualiza os arquivos no seu diretório de trabalho para corresponder à versão armazenada nela.
Em outras palavras, você está instruindo o Git a registrar todos os seus commits no branch, alterando a linha de desenvolvimento. O uso de ramificações dedicadas para novos recursos é uma prática que diverge do fluxo de trabalho antigo do Subversion (SVN), e simplifica o trabalho com código em todos os cenários mencionados na seção “Por que usar ramificações”.
O comando git checkout
não deve ser confundido com git clone
. O primeiro é usado para alternar entre as versões do código, enquanto o segundo busca o código de um repositório remoto.
Utilizando Ramificações Existentes
Se o repositório que você está trabalhando já possui ramificações, você pode visualizá-las no seu terminal utilizando o comando git branch
.
As ramificações disponíveis serão listadas, com a ramificação atual em destaque (geralmente em verde), caso esteja usando Windows e Visual Studio Code. Para mudar entre ramificações, utilize git checkout nomedaramificação
. A variável ‘nomedaramificação’ representa o nome da sua ramificação, e você pode utilizar qualquer convenção de nomenclatura.
Criando Ramificações Git
Imagine que você está no meio do desenvolvimento do seu software e deseja adicionar um novo recurso. A melhor maneira de lidar com isso é criando uma nova ramificação utilizando o comando git branch
.
Na prática, digite o seguinte no seu terminal:
git branch nomedaramificação
Isso significa que você criou uma ramificação a partir da ramificação principal/mestre (onde geralmente está a versão de produção do seu projeto). O nome da nova ramificação, nesse caso, é ‘nomedaramificação’.
Para mudar para sua nova ramificação, utilize git checkout
:
git checkout nomedaramificação
Desenvolvedores que gostam de economizar tempo podem criar uma ramificação e mudar para ela imediatamente usando git checkout
com o argumento -b
, seguido do nome da ramificação. Ou seja, a seguinte instrução:
git checkout -b nomedaramificação
O parâmetro -b
instrui o Git a executar o comando git branch
logo antes do checkout
. Vamos explorar outras técnicas para criar ramificações Git.
Vamos analisar outras técnicas que você pode usar para criar ramificações, de acordo com suas necessidades:
#1. Criando uma Ramificação a partir da sua Ramificação Atual
Se você deseja criar uma nova ramificação com base na atual, o método mais eficiente é utilizar o comando:
git checkout -b <nomedaramificação>
Este comando cria automaticamente a nova ramificação e muda para ela. Para confirmar que você está na nova ramificação, seu terminal deve exibir a mensagem – ‘mudado para uma nova ramificação nomedaramificação’.
Se você for um desenvolvedor iniciante, digite os comandos em seu terminal sem os símbolos (< e >). Eles são utilizados para fins de ilustração e explicação, e não devem ser usados incorretamente.
#2. Criando uma Ramificação a partir de uma Ramificação Diferente
Para criar uma ramificação com base em outra ramificação existente, adicione o nome da ramificação base como ponto de partida. Utilize o seguinte comando:
git branch <novaramificação> <ramificaçãobase>
Em um caso prático:
git branch nova-funcionalidade ramificaçãoprodução
Nesse caso, ‘nova-funcionalidade’ é o nome da nova ramificação, e ‘ramificaçãoprodução’ é a ramificação base (fundação).
#3. Criando uma Ramificação a partir de um Commit
Se você deseja criar sua nova ramificação a partir de um commit (e não de uma ramificação), você precisa fornecer o hash do commit como ponto de partida. Para encontrar o hash, execute o comando git log
.
O hash do commit é geralmente uma sequência longa de caracteres, começando com ‘commit’. Utilizando o hash, você pode criar a ramificação com o seguinte comando:
git branch <nomedaramificação> <hash-do-commit>
Em seguida, você pode mudar para sua nova ramificação acessando-a.
#4. Criando uma Ramificação a partir de uma Tag
Para criar uma ramificação a partir de uma tag específica, encontre o nome da tag que você deseja usar como base. Utilize o comando git tag
para listar todas as tags disponíveis no seu repositório.
Após identificar o nome da tag, execute git branch <novaramificação> <nome-da-tag>
, e você poderá mudar para sua nova ramificação e iniciar as mudanças no código.
#5. Criando uma Ramificação usando o Estado HEAD Desanexado
Você pode utilizar o estado HEAD desanexado para criar novas ramificações que começam em um commit específico, sem mudar para essa ramificação imediatamente. Essa técnica é útil quando você quer experimentar mudanças sem afetar a ramificação em que está trabalhando. Comece encontrando o hash do commit desejado com o comando git log
.
Com o hash do commit, execute: git checkout <hash do commit>
. Este comando indica que você está em um estado HEAD desanexado, ou seja, você não está em uma ramificação, mas sim apontando para um commit específico. Em seguida, use git branch <nomedaramificação>
para criar sua ramificação com base nesse commit.
#6. Criando uma Ramificação a partir de uma Ramificação Remota
Comece criando uma ramificação local. Utilize o comando: git checkout -b <nomedaramificação>
. A ramificação remota é criada automaticamente quando você envia a ramificação criada localmente para o repositório remoto.
Envie a ramificação para o remoto com: git push origin <nomedaramificação>
. Nesse comando, ‘origin’ representa o repositório remoto para o qual você está enviando as alterações. Você pode substituir pelo nome do seu repositório remoto.
#7. Criando uma Ramificação em um Repositório Remoto
Para criar uma ramificação em um repositório remoto, obtenha as últimas atualizações do seu repositório remoto com o comando git fetch
. Após obter as atualizações, você pode criar uma nova ramificação acessando-a. Em seguida, envie as mudanças:
git push -u <repositório-remoto> <novaramificação>
Em suas operações, é melhor usar ‘origin’ (como na criação de uma ramificação a partir de uma ramificação remota). Isso economiza tempo e reduz a chance de erros ao digitar nomes de repositórios remotos.
Interface Online do GitHub
Todas as tarefas executadas na linha de comando podem ser replicadas utilizando a interface do GitHub. Para criar uma nova ramificação, acesse a página do repositório do projeto e procure por ramificações no canto superior esquerdo – geralmente mestre/principal.
Ao clicar nesse botão, uma lista de ramificações disponíveis será exibida, juntamente com um campo de texto para encontrar ou criar uma ramificação.
Para criar uma ramificação, digite o nome desejado no campo de texto. A interface online é automatizada e permite criar ramificações a partir de elementos específicos, como tags, branches e commits. Se você está começando a usar ramificações, é útil consultar a documentação do GitHub para evitar problemas futuros.
Considerações Finais
Agora que você aprendeu diversas técnicas para criar ramificações Git, você pode incorporar essas habilidades ao seu desenvolvimento de software, criando um fluxo de trabalho eficiente e organizado.
A melhor opção de ramificação dependerá de sua equipe, dos critérios de fluxo de trabalho e de eventos específicos. Por exemplo, ao solicitar a opinião de um colaborador, ele pode criar ramificações remotamente e adicionar contribuições valiosas.
Como você viu, a ramificação do Git oferece um mecanismo poderoso para trabalhar com mais eficiência em projetos de software. Apesar de existirem outras opções de controle do Git, este artigo demonstrou como trabalhar com ramificações do Git pela linha de comando, e espero que você se sinta mais confiante ao usar o Git.
Agora que você solidificou suas habilidades em criação de ramificações, você pode ter interesse em ler nosso guia sobre como excluir ramificações no GitHub.