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
git branch branch_a
git checkout branch_a
É possível fazer checkout de branches, tags e até mesmo commits específicos.
git checkout -b branch_a
git branch
A branch corrente começa com um (*)
git branch -d branch_a
git branch -D branch_a
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.
git merge master
Integra a branch_a na branch corrente
git merge branch_a
- Projeto com 3 branches:
- branch_a
- branch_b
- master(branch padrão)
A---B---C branch_a
/
D---E master
\
H---------I branch_b
- Projeto após a o merge da branch_a na master:
A---B---C
/ \
D---E --------J master
\
H---------I branch_b
- Projeto após o merge da branch_b na master:
A---B---C
/ \
D---E --------J---K master
\ /
H---------I