loading...
WoMakersCode

[Tutorial Git] O que são branches (ramos) no Git?

danielle8farias profile image ダニエリ Updated on ・2 min read

De maneira simplificada, os ramos (branches) no Git são semelhantes a um ramo de uma árvore, onde o tronco seria a base do código. Desse modo é possível criar diversos ramos e fazer alterações, enquanto a base permanece intacta. Por padrão o ramo principal é denominado de master.

ramos no git

Criando branch

Para criar um branch, digite

$ git branch <nome do ramo>
Enter fullscreen mode Exit fullscreen mode
  • o símbolo $ indica que você deve usar o usuário comum para fazer essa operação.
  • substitua o <nome do ramo> pelo nome que deseja dar ao seu ramo (branch) sem os sinais <>

Para ir até o branch criado

$ git checkout <nome do ramo>
Enter fullscreen mode Exit fullscreen mode

Para usar um atalho para esses comandos acima

$ git checkout -b <nome do ramo>
Enter fullscreen mode Exit fullscreen mode

Desse modo o branch será criado e em seguida irá transferi-lo para lá.

Listar branch

Para listar todos os branches, usa-se o comando:

$ git branch -a
Enter fullscreen mode Exit fullscreen mode

Para saber em qual branch você está, digite:

$ git branch
Enter fullscreen mode Exit fullscreen mode

Excluindo branch

Para excluir um branch, digite

$ git branch -d <nome do ramo>
Enter fullscreen mode Exit fullscreen mode

Unindo branch

Para unir todas as modificações que foram feitas em diferentes branches, ao ramo principal do projeto, digite

$ git checkout master
Enter fullscreen mode Exit fullscreen mode

para ir até o branch principal ou

$ git checkout <nome do ramo>
Enter fullscreen mode Exit fullscreen mode

para ir até o branch (ramo) de destino das alterações.

Então digite

$ git merge <nome do ramo onde as alterações foram feitas>
Enter fullscreen mode Exit fullscreen mode

O fluxo dos branches será algo como a figura abaixo (unindo branch 1 a master)

merge

Para visualizar os commits de merge:

 $ git log --merges 
Enter fullscreen mode Exit fullscreen mode

Resolvendo conflitos ao unir os ramos no git

Supondo que temos um arquivo na branch master com o seguinte código:

#!/usr/bin/env python3.7
def soma(x,y):
    z = x+y
    print(x,"+",y,"=",z)

print('SOMA DOIS NÚMEROS')
num1 = float(input("Digite o primeiro número: "))
num2 = float(input("Digite o segundo número: "))
soma(num1,num2)
Enter fullscreen mode Exit fullscreen mode

E o mesmo arquivo na branch teste, com o código:

#!/usr/bin/env python3.7
def soma(a,b):
    c = a+b
    print(f'Soma = {c}')

print('SOMA DOIS NÚMEROS')
numero1 = float(input("Digite o primeiro número: "))
numero2 = float(input("Digite o segundo número: "))
soma(numero1,numero2)
Enter fullscreen mode Exit fullscreen mode

Ao tentar fazer o merge o git anunciará o conflito:

Mesclagem automática de <arquivo>
CONFLITO (conteúdo): conflito de mesclagem em <arquivo>
Automatic merge failed; fix conflicts and then commit the result.
Enter fullscreen mode Exit fullscreen mode

Desse modo, é preciso primeiro resolver a situação conflitante e em seguida fazer o commit.

Caso deseje desfazer esse processo, digite:

$ git merge --abort
Enter fullscreen mode Exit fullscreen mode

Discussion

pic
Editor guide