DEV Community

ダニエリ for WoMakersCode

Posted on • Updated on

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

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 main (master, na versão antiga).

ramos no git

Criando branch

Para criar um branch, digite

$ git branch <nome_do_ramo>
Enter fullscreen mode Exit fullscreen mode
  • $ indica que você deve usar o usuário comum para fazer essa operação.
  • escolha um nome para o seu ramo sem os sinais < e >.

Para ir até o branch criado

$ git checkout <nome_do_ramo>
Enter fullscreen mode Exit fullscreen mode

Para usar um atalho para esses dois comandos acima (criar o novo ramo e ser imediatamente transferida para ele)

$ git checkout -b <nome_do_ramo>
Enter fullscreen mode Exit fullscreen mode

Desse modo o branch será criado e em seguida irá transferir você 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

Excluindo branch remoto

$ git push origin --delete <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 main
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 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 main).

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 main com o seguinte código

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:

def somar(a,b):
    c = a+b
    return c

print('SOMA DOIS NÚMEROS')
numero1 = float(input("Digite o primeiro número: "))
numero2 = float(input("Digite o segundo número: "))
resultado = somar(numero1,numero2)
print(f'Soma: {resultado}')
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 (escolhendo as partes do código que deseja manter) e em seguida fazer o commit. Só após isso a união dos branches (ramos) será concluída.

Caso deseje desfazer esse processo, digite:

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

Discussion (0)