Desmistificando branches remotas com Git

Desmistificando branches remotas com Git
williammizuta
williammizuta

Compartilhe

Você já usa o básico do Git e quer dar um passo além: trabalhar com os temidos branches.

Git-Logo

Uma das grandes vantagens do git ou de qualquer sistema de controle de versão distribuído é a possibilidade de trabalhar com branches localmente. Com isso, outras pessoas do projeto não precisam conhecer uma branch que foi criada apenas para facilitar o trabalho de um desenvolvedor. Mas quando desejamos distribuir o conteúdo de uma branch local para que outros desenvolvedores possam contribuir, precisamos que ela se torne remota.

Imaginem que uma das tarefas consiste em modificar o design de uma determinada página. Para isso, criaremos uma branch local chamada design, onde serão realizadas os commits com as alterações, e depois entramos nela:

Banner da Escola de Inovação e Gestão: Matricula-se na escola de Inovação e Gestão. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!
 git branch design git checkout design 

Agora você pode trabalhar normalmente, fazendo commits nesse branch, que ficará armazenado localmente. Dessa forma você não incomoda os outros desenvolvedores que estão trabalhando na branch master, nem precisará mandar todo o novo design pra lá num único commit!

Criando branches remotas

Contudo, você gostaria que uma outra pessoa também pudesse contribuir com as alterações nessa branch. No Git, para disponibilizar uma branch local remotamente basta rodar o seguinte comando:

 git push origin design 

Copiando uma branch remota localmente

Agora, outras pessoas que quiserem contribuir numa determinada branch remota, precisam copiá-la localmente. Isto é feito com o seguinte comando:

 git checkout -t origin/design 

Feito isso, você terá uma branch local chamanda design e pode trabalhar nela como qualquer outra branch local.

Depois do design pronto: 'juntando' os branches

Dentro do branch design, uma vez terminadas as modificações que queríamos fazer em paralelo, podemos jogar de volta as modificações para o branch master:

 git checkout master git merge design 

Isso deixará o master atualizado com um novo commit, trazendo todas as modificações da branch design. Fica só faltando atualizar o master do remoto, com o simples git push.

Há também a opção de fazer um rebase, mas deve-se tomar cuidado, pois ele altera o histórico do master, tentando adicionar os commits do outro branch.

Removendo branches remotas

Uma vez a tarefa foi concluída e integrada na branch principal (master), a branch que criamos anteriormente não é mais necessária. Para não ficar poluindo o nosso repositório, uma boa prática é remover branches que não são mais necessárias. Para isso, basta rodar o seguinte comando:

 git push origin :design 

Perceba que a única diferença com o comando de disponibilizar reomotamente uma branch local é um dois pontos (:).

Aprenda mais no nosso curso de práticas ágeis e no curso online de Git!

Veja outros artigos sobre Inovação & Gestão