Objetivo

Interpretar commit, branch, diff e conflito sem tratar Git como botão mágico de sincronização.

História

Dois agentes alteram a mesma regra de prioridade. Git preserva versões e relações, mas não decide qual regra de negócio é correta.

Hipótese a testar

Branches longas e mudanças grandes aumentam conflitos semânticos mesmo quando o merge textual termina sem conflito.

Pré-requisitos

  • arquivos
  • terminal

Simulador

Altere uma variável, antecipe o efeito e compare com o indicador. A escala mostra pressão relativa, não uma garantia de segurança.

Faixa controladaReveja o contrato e os testes antes de concluir.

Fluxo observado

  1. working tree
  2. stage
  3. commit
  4. branch
  5. review
  6. merge

O que observar

  • Commit registra uma fotografia e pais; branch é uma referência móvel.
  • Conflito textual é explícito; conflito semântico pode passar silenciosamente.
  • Diff pequeno facilita revisão, teste e reversão.

Erros comuns e melhoria

Merge passou, regra ficou errada

Causa: Linhas diferentes alteraram o mesmo comportamento

Melhoria: Execute testes de domínio e revise especificação, não apenas marcadores de conflito.

Commit mistura formatação e feature

Causa: Fatia sem objetivo único

Melhoria: Separe mudança mecânica da mudança comportamental.

Exercício guiado

  1. Crie duas versões conflitantes de uma função pura.
  2. Resolva o conflito com base em um teste, não em preferência.
  3. Explique o grafo antes e depois do merge.

Desafio independente

Planeje expand–migrate–contract para renomear um campo usado por API, banco e frontend sem branch gigante.

Evidência exigida

Histórico com commits pequenos, teste que reproduz o conflito semântico e justificativa da resolução.

Consulta universal

O que você quer encontrar?

Títulos, capítulos, conceitos, termos, laboratórios e ferramentas em uma única busca.

Digite pelo menos dois caracteres.