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.
Desafio
MédioVocê 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:
- Crie a branch
featuree acrescente a linhaaddedatop.txt; faça o commit. - Mude para
maine acrescente a linhaaddedabottom.txt; faça o commit. - Faça o merge de
featureemmaincom a mensagemMerge 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
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
4Inspecionando Alterações
Git DiffDiff das Alterações PreparadasGit ShowRecapitulação - Trabalho de Detetive2Primeiros passos
Inicializar um repositórioA pasta .gitConfigure sua identidadeStatus do GitRecapitulação — primeiro repositório5Ignorando Arquivos
Por Que Ignorar ArquivosPadrões do GitignoreVerificar Regras de IgnorarRecapitulação - Repositório Limpo8Mesclagem
O que é uma mesclagemMesclagem de avanço rápidoMesclagem de três viasConflitos de mesclagemResolver um conflitoRecapitulação — Mestre da mesclagem11Projeto com Branch de Recurso
Visão Geral do ProjetoInicializar a Main3Acompanhando Alterações
A Área de PreparaçãoGit AddGit CommitModificando um Arquivo RastreadoGit LogRevisão - Primeiros Commits6Projeto de Site de Receitas
Visão Geral do ProjetoInicializar e IgnorarPratique por conta própria: Playground de Terminal