Skip to content

Latest commit

 

History

History
118 lines (81 loc) · 2.32 KB

19_trabalhando-com-branches.md

File metadata and controls

118 lines (81 loc) · 2.32 KB

Trabalhando com branches

Com o objetivo de isolar trabalho em repositórios com mais de um desenvolvedor, podemos criar branches.

Uma branch é um atalho móvel para um commit.

Esse isolamento permite que várias pessoas sigam o desenvolvimento de features isolamente, sem conflitos entre si.

Isso pode ajudar a garantir que a versão na master é a mais estável por exemplo.

Exemplo:

                    A---B---C branch_a
                    /
               D---E  master
                    \                  
                     H---------I branch_b 

Criando uma branch

git branch branch_a

Acessando uma branch

git checkout branch_a

É possível fazer checkout de branches, tags e até mesmo commits específicos.

Criando e acessando uma branch

git checkout -b branch_a

Visualizando branches

git branch

A branch corrente começa com um (*)

Removendo uma branch que ainda já foi integrada ao repositório remoto

git branch -d branch_a

Removendo uma branch que ainda não integrada ao repositório remoto

git branch -D branch_a

Removendo uma branch do repositório remoto

git branch --delete origin :branch_a

Cuidado pois ela não estará mais acessível no repositório remoto. Alguma outra pessoa pode querer fazer checkout dessa branch.

Integra a branch master com na branch corrente

git merge master

Integrando uma branch na outra

Integra a branch_a na branch corrente

git merge branch_a

Integrando branches

  1. Projeto com 3 branches:
  • branch_a
  • branch_b
  • master(branch padrão)
                    A---B---C branch_a
                    /
               D---E  master
                    \                  
                     H---------I branch_b 
  1. Projeto após a o merge da branch_a na master:
                    A---B---C 
                    /        \
               D---E --------J master 
                    \                  
                     H---------I branch_b 
  1. Projeto após o merge da branch_b na master:
                    A---B---C 
                    /        \
               D---E --------J---K master
                    \           /                
                     H---------I