Menu
Coddy logo textTech

Mesclagem de três vias

Parte da seção Controle de Versão do Journey de Terminal da Coddy. Lição 36 de 58.

Se ambas as ramificações tiverem avançado de forma independente, o Git não poderá simplesmente fazer um fast-forward. Em vez disso, ele realiza uma mesclagem de três vias: analisa o ancestral comum e as pontas das duas ramificações, produzindo um novo commit que as combina.

Este novo commit é o commit de mesclagem. Ele tem dois pais, um de cada branch:

git switch main
git merge feature -m "Merge feature"

A flag -m fornece diretamente a mensagem do commit de merge, portanto o Git não abre um editor.

Na maioria das vezes, o Git consegue combinar as alterações de ambos os branches automaticamente, desde que elas toquem em partes diferentes dos arquivos. Conflitos só acontecem quando ambos os branches alteram as mesmas linhas, que é o tópico da próxima lição.

challenge icon

Desafio

Médio

Você começa em uma pasta vazia com top.txt (conteúdo: a) e bottom.txt (conteúdo: b).

Inicialize o repositório, faça um primeiro commit e, em seguida:

  1. Crie a branch feature e acrescente a linha added a top.txt; faça o commit.
  2. Mude para main e acrescente a linha added a bottom.txt; faça o commit.
  3. Faça o merge de feature em main com a mensagem Merge feature.

Imprima a quantidade de commits alcançáveis a partir de HEAD usando git rev-list --count HEAD. A quantidade esperada é 4 (inicial + feature + main + merge).

Experimente você mesmo

Terminal
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Controle de Versão

Pratique por conta própria: Playground de Terminal