Git & Version Control

simulador GitVeja o histórico antes de executar

Escolha um cenário e visualize o efeito sem abrir ou alterar um repositório.

simulador Git

Grafo de commits do exemplo

AA: Base comumBB: Atualização em mainmainCC: Mudança da featureDD: Teste da featurefeature

A–D e os apóstrofos são IDs didáticos, não hashes Git reais.

Prévia do histórico

Escolha um exemplo e uma operação para ver o resultado aqui.

Só o grafo didático fixo é processado neste navegador; nenhum repositório é lido ou acessado.

Opções

Branch de destino: main · Branch de origem: feature

Ctrl/Cmd + Enter visualiza a operação escolhida.

Escolha uma operação para visualizar.

O grafo modela arquivos fixos de uma linha, não a estratégia de merge do seu repositório.

Um simulador Git ajuda a enxergar qual ponteiro muda quando main e feature se separam de um ancestral comum. O grafo de commits fixo mostra as três operações sem pedir acesso ao seu projeto.

Troque para o caso de avanço rápido ou para duas alterações da mesma linha. A, B, C e D são IDs didáticos, não hashes do seu repositório nem garantias de que o comando será seguro.

Por que usar este simulador Git?

Comparar três resultados no mesmo ponto de partida

O simulador Git mantém os commits antigos no merge e desenha cópias novas no rebase e no cherry-pick. O desenho deixa claro quando main ou feature muda, sem confundir seleção de um commit com integração da ramificação inteira.

Duas ramificações saem de um commit comum e um novo nó de merge conecta os dois pais.

Conflito com valores verificáveis

O cenário preparado mostra a base e as versões de cada lado de uma linha de app.js. Esse conflito de merge é do exemplo; o navegador não conhece os arquivos nem a configuração do seu projeto.

A mesma linha de arquivo muda de modo diferente nas duas ramificações e um alerta interrompe a prévia.

Três pistas para ler a prévia

01

Experimente o avanço rápido

Se main for ancestral de feature, merge apenas move o ponteiro main para um commit existente. No caso divergente surge um novo commit de dois pais.

02

Observe os commits recriados

Rebase reaplica C e D como C′ e D′ e move feature. Cherry-pick copia só o C ou D escolhido para main; a ponta original de feature continua no lugar.

03

Atualize antes de exportar

Mudar cenário ou operação torna a prévia antiga inválida e bloqueia copiar ou baixar. Ctrl/Cmd + Enter refaz a prévia; depois substitua os nomes e o marcador de hash do rascunho.

O que muda em cada operação

Merge pode ser avanço rápido

Quando já existe relação de ancestralidade, não há commit novo. No cenário divergente, o merge acrescenta um nó com dois pais e preserva os commits originais.

Rebase ou cherry-pick em escala diferente

O primeiro recria a sequência feature sobre main; o segundo reaplica um único commit selecionado. Os IDs com apóstrofo são símbolos didáticos, não hashes SHA reais.

Conflito restrito ao arquivo preparado

O exemplo compara uma linha e marca o ponto em que a aplicação para. Ele não reproduz toda a mesclagem textual do Git nem prevê conflito no seu repositório.

Limites deste modelo de ensino

Sem acesso ao repositório real
O simulador Git não lê git log, pastas locais ou URLs remotas e não executa comandos. Alterações não confirmadas, permissões e políticas do servidor ficam fora da análise.
Sem garantia para produção
O rascunho usa main e feature como nomes de exemplo. Antes de reescrever uma branch compartilhada, confira referências reais, estado de trabalho e acordos da equipe.
Só um conflito de linha fixa
O app.js do cenário contém três valores conhecidos. A mesclagem textual, renomeações e opções do Git real podem agir de modo diferente; esta página não resolve arquivos nem executa --continue.
Sem terminal ou operações remotas
Push, pull, stash, squash, revert, comandos arbitrários e rebase interativo não fazem parte das três demonstrações. O grafo fixo não possui o estado necessário para simular tudo isso.

Perguntas sobre o simulador Git

Devo utilizar rebase ou merge para adicionar mudanças na master?

Merge preserva a bifurcação; rebase recria commits da feature sobre uma base atualizada. O simulador Git mostra os dois desenhos, mas o uso depende de a branch já ter sido compartilhada e das regras da equipe.

Qual a diferença entre git cherry-pick e git merge?

Cherry-pick reaplica a mudança de um commit escolhido na branch atual, criando outro commit. Merge integra a história de uma ramificação; num avanço rápido pode apenas mover o ponteiro.

Qual a diferença entre git pull e git pull --rebase?

O pull comum integra o que foi buscado conforme a configuração, muitas vezes por merge; com --rebase, commits locais são reaplicados sobre a atualização. Esta página não acessa remotos nem simula pull.

Como funciona o comando git rebase?

Git identifica os commits da feature além da base e os reaplica um por um sobre o novo ponto de partida. Por isso surgem novos IDs, e um conflito pode interromper a sequência para resolução manual.

Como mudar a base de um branch?

O exemplo usa rebase para colocar C e D depois da ponta de main. Antes de fazê-lo no seu projeto, verifique a branch de destino, trabalho não confirmado e se outras pessoas usam os commits que serão recriados.

A prévia difere da documentação do aparelho?

Experimente o simulador Git

Compare merge, rebase e cherry-pick no mesmo grafo, examine o conflito fixo e confira as referências reais antes de aproveitar o rascunho.