9

Branches no GitHub

#GitHub
Amanda Bezerra
Amanda Bezerra

Antes mesmo de começar a aprender a programar (comecei a aprender na universidade), nosso professor nos ensinou sobre GitHub. Talvez naquele momento eu e minha turma não tivéssemos entendido a importância daquele tópico especifico. Hoje vejo o quão importante esse conhecimento é para um projeto.

Imagine que você está desenvolvendo um projeto com mais de 5 pessoas, e que todas as pessoas tenham acesso ao código e devem trabalhar nele ao mesmo tempo, cada um em sua máquina. Mesmo que haja uma definição de tarefas bem definida, quando uma pessoa muda um pedaço de código e envia para o GitHub, e outra pessoa que editou o mesmo código, não necessariamente nesse pedaço, resolve enviar também suas modificações, acontece o evento chamado de conflito.

Os branches (em português significa ramos) são uma forma de garantir que se houver conflito, ou se um pedaço de código for enviado para o GitHub sem ser testado completamente e acabe apresentando erro, o código anterior (sem erro, sem conflitos, totalmente funcional) está salvo.

O básico de branches é:

  • Feature
  • Develop
  • Master

O feature é o seu branch local, ele apenas estará na sua máquina. Você deve fazer um git pull do código que está no GitHub e o editar dentro desse branch. Dessa forma nenhuma outra pessoa trabalhando no projeto tem acesso ao que você está fazendo e você poderá testar seu código até ter certeza que outros podem trabalhar com ele.

Quando você tiver certeza que seu código está ok você pode enviá-lo ao develop, que é um ramo onde as outras pessoas do projeto também tem acesso. Ou seja, várias pessoas estão trabalhando no develop. Já que você não ficou editando e testando o arquivo nesse branch as chances de ocorrer conflito são bem menores (mais ainda assim podem acontecer, comunicação entre as equipes é essencial nessas horas).

Se o grupo terminou uma das metas do projeto e tem essa parte concluída e funcionando, alguém do grupo deve enviar o código do ramo develop para o ramo master. O ramo master é o principal, nele deve estar gravada a versão do seu código sem erros, para que no final do projeto essa seja a versão a ser usado, a ultima release.


Para entender melhor como funciona os branches e como criar um feature, um develop e como manter esse fluxo de trabalho eu indico os seguintes sites:

https://www.atlassian.com/br/git/tutorials/comparing-workflows/feature-branch-workflow

https://docs.github.com/pt/free-pro-team@latest/github/collaborating-with-issues-and-pull-requests/about-branches

Esse está em inglês, mas ele é muito bom:

https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell


Isso foi apenas um resumo de como deve ser feito o fluxo de trabalho no GitHub. Eu não escrevi sobre merges, como criar um branch ou onde dar pull ou push depois de editar, porque tinha a intenção de explicar brevemente como um projeto deve ser mantido para evitar conflitos e erros inesperados.

Espero ter ajudado, estou meio enferrujada mas quem quiser tirar dúvida pode me perguntar :)

3
89

Comentários (3)

1
Lucas Magalhães

Lucas Magalhães

07/01/2021 15:01

Super interessante e esclarecedor. Obrigado por compartilhar!

Estou viciado na DIO e no GitHub! Hahahah

2
Nayanne Batista

Nayanne Batista

07/01/2021 11:29

Muito bom Amanda, eu também adorei que no Bootcamp ensinaram logo sobre o Git e GitHub. Realmente é essencial! Obrigada por compartilhar sua experiência!

2
Maria Fisher

Maria Fisher

07/01/2021 09:22

Oi Amanda, obrigada pelas dicas ;-)

Amanda Através do Espelho

Brasil