Git branch: como gerenciar ramificações sem complicação!

Quando desenvolvemos um projeto, independentemente se há um time de pessoas ou só uma, é muito importante nos preocuparmos com versões e ramificações de código. Para isso, existem branches, logo, umas das funções mais importantes no Git é o Git branch, já que usamos ele no nosso processo de desenvolvimento diariamente. 

Um exemplo clássico do uso de branches é quando temos um projeto funcionando e precisamos modificar uma das funcionalidades desse projeto. Se mexermos direto, podemos quebrar o que já está funcionando e causar uma série de problemas. Mas quando criamos um branch, uma ramificação do nosso código principal, conseguimos fazer alterações, parar o desenvolvimento, retornar depois de um tempo, tudo isso sem alterar o que já está funcionando.

O que é o Git branch e para que serve?

O Git branch é um comando usado para realizar operações com branches, ou seja, ramificações do código. Essas operações podem ser criar, listar, renomear ou excluir. Você pode pensar em uma ramificação de código como se você “duplicasse” o código de um lugar para outro e criasse um novo ambiente de desenvolvimento. 

Existem outras operações que usam branches mas que não utilizamos o comando Git branch, como por exemplo: 

  • alternar entre branches — aqui usamos o git checkout;
  • reunir códigos entre branches —aqui podemos usar git merge ou git rebase.

Na imagem abaixo, a partir de determinados pontos do código, foram criadas outras ramificações. Se você perceber, uma ramificação não depende da outra para continuar sendo desenvolvida. Isso significa que o branch principal não é alterado e continuará funcionando enquanto arrumamos algum bug ou desenvolvemos uma nova feature. Quando elas estiverem prontas, aí sim poderemos juntar esse código no branch principal.

Exemplificação de como funciona o Git Branch

Qual a diferença entre branch local e branch remoto?

Branch local é uma ramificação do seu código que apenas você vê, ou seja, está apenas no seu computador localmente. Por exemplo, quando você cria um branch (com git branch <nome-do-branch), ele estará visível apenas para você. 

Já um branch remoto, é quando esse branch está alocado em um outro local remotamente, geralmente público ou restrito a um grupo de pessoas. Quando você usa o comando git push origin <nome-do-branch você está pegando o seu branch local e colocando ele para origin, um “lugar” remoto. 

Como usar um branch do Git?

1 – Criando um novo branch

Para criar um novo branch basta usar o comando:

git branch <nome-do-branch>

Mas perceba que esse comando só vai criar o branch. Você continuará no branch que já estava. Para começar a fazer alterações no novo branch, você precisa alterar para esse branch usando git checkout <nome-do-branch> e assim conseguirá fazer alterações.

Uma outra forma mais simples de fazer isso é usando a opção -b do git checkout, que cria e já muda para o branch criado, então ficaria: git checkout -b <nome-do-branch>

2- Criando um branch remoto

Com o comando anterior, você apenas criou um branch localmente. Agora você precisa enviar ele para o repositório remoto. Para isso, depois de criar o branch, basta usar o comando git push origin <nome-do-branch>

Nesse caso, usei origin pois a convenção é usarmos esse nome. Mas quando você criou ou clonou o seu repositório e usou o comando git remote, você determinou qual nome usaria para o repositório. Se não for origin, troque pelo nome utilizado! (Você consegue descobrir rodando o comando git remote -v)

3 – Listando os branchs criados

Para saber a lista de branches que existem no seu repositório, basta rodar git branch no seu repositório, que se assemelha ao comando git branch --list.

Caso você queira listar também os branches remotos, basta usar o comando git branch -a.

4 – Como renomear branches?

Quando você quiser trocar o nome do seu branch, vá até o seu branch e execute o comando git branch -m <novo-nome>. Mas tome o cuidado de verificar se esse é apenas um branch local ou se já é remoto. 

5 – Excluindo um branch

Para excluir um branch local basta usar o comando git branch -d <nome-do-branch>

Caso você tenha feito um commit nesse branch, você receberá a seguinte mensagem de erro:

error: The branch '<nome-do-branch>' is not fully merged.

Dessa forma, se você realmente quiser deletar esse branch, perderá todos os commits feitos, e para isso precisa usar o comando git branch -D <nome-do-branch>.

Mas se você quer excluir um branch remoto, o comando é diferente! Você precisa usar git push origin --delete <nome-do-branch>.

Opções para usar com Git branch

a) Mais informações sobre branches: -v e -a

O comando git branch simples traz apenas os nomes de branches. Com a opção -a, que é o mesmo que –all, você consegue ver todos os branches, incluindo os branches remotos. Já o comando -v, o mesmo que –verbose, mostra mais informações, como o hash e mensagem do último commit de cada branch.

b) Branches que não foram mergeadas: –no-merged

Com essa opção, você consegue ver os branches que ainda não foram mergeados, o que ajuda a visualizar em quais branches você ainda possui informações que estão apenas localmente e não remotas. Você também consegue ver quais são todos os que foram mergeados, com a opção –merged.

c) Deletando branches: -d e -D

Para deletar um branch, basta usar a opção -d, ou também –delete. Caso você tenha conteúdos não mergeados, você precisará usar -D, que é um atalho para –delete –force. Mas cuidado, pois seus dados serão totalmente perdidos. 

d) Renomeando branches: -m

Para renomear branches, você pode usar a opção -m, ou também –move.

e) Veja branches remotos: -r

Essa opção -r, ou também –remotes, permite combinar com outros comandos para listar branches remotos. 

Branches são muito importantes quando você precisa usar Git e trabalhar de forma distribuída com o seu time. Eles trazem muito mais agilidade e flexibilidade para o seu trabalho, além de trazer mais segurança para a sua aplicação, principalmente em um mundo web. Quanto mais você aprender sobre Git, mais verá o quanto essa ferramenta pode trazer uma maior produtividade para o seu dia a dia.

Gostou de aprender sobre comandos Git? Aprenda agora sobre o que é Git Flow!