Bruno Orlandi
Git e contribuição para
projetos Open Source
Aula 4
Branching
Criando ramificações do repositório
Branch
●
É uma lista de commits.
●
Representa ramificações no repositório.
●
Muito útil para trabalhos colaborativos.
●
Branchs de desenvolvimento facilitam o 
controle.
●
Branch master é a padrão.
git branch
Branching
git branch <nova_branch>
●
Cria uma nova branch.
git branch ­d <branch>
●
Excluir uma branch.
Git Checkout Branch
git checkout <branch>
●
Muda para a branch.
●
Seu repositório passa a ter os commits que a 
branch possui e novos commits serão 
adicionados à ela.
Exercício 4
●
Crie uma nova branch no seu repositório.
●
Mude para esta branch e faça pelo menos 2 
commits.
●
Faça o upload e veja sua nova branch no 
GitHub.
●
Faça um commit na master que altere as 
mesmas linhas.
●
Veja como as branchs divergem no GitHub.
Git Merge
git merge <branch>
●
Aplicar os commits de uma branch na branch 
atual.
●
Encontra um commit comum(base) entre as 
branchs e aplica todos os commits que a 
branch atual não possui.
●
Caso existam commits na branch atual que 
não estão na outra, será criado um commit de 
merge.
Exercício 5
●
Fazer o merge da nova branch na master.
●
Resolver o conflito e visualizar no GitHub o 
gráfico das branchs.
Git Rebase
git rebase <branch>
●
Semelhante ao Merge porém é diferente na 
ordem de aplicar os commits.
●
No Rebase, os seus commits na frente da base 
são removidos temporariamente, os commits 
de outra branch são aplicados na sua branch e 
por fim seus commits são aplicados um a um.
●
Pode acontecer conflitos que serão resolvidos 
para cada commit.
Git Rebase
Exercício 6
●
Faça um commit na master e outro em outra 
branch.
●
Faça o rebase da branch com a master.
●
Veja a ordem dos commits.
●
Mesmo que tenha conflitos o histórico de 
commits é preservado.
Git Fetch
git fetch
●
Baixa as atualizações do remote porém não 
aplica elas no repositório.
●
Permite fazer o rebase de uma branch em vez 
de fazer o merge.
●
Pull = Fetch + Merge
●
Fetch e Rebase é melhor para manter histórico 
do desenvolvimento.
Exercício 7
●
Com a branch master sincronizadas você e seu 
par devem fazer commits na master.
●
Seu par deve fazer o push dos commits dele.
●
Antes de você fazer o push dos seus commits 
você deve fazer o rebase com os commits do 
seu par.
Tag
●
Útil para definir versões estáveis do projeto.
●
Semelhante a Branch porém não recebe mais 
commits.
●
Guarda um estado do repositório.
git tag [nome da tag]
git push <remote> <tag>

Aula 4 - Curso Git e Github - Webschool