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.
Git & Version Control
Escolha um cenário e visualize o efeito sem abrir ou alterar um repositório.
A–D e os apóstrofos são IDs didáticos, não hashes Git reais.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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?
Compare merge, rebase e cherry-pick no mesmo grafo, examine o conflito fixo e confira as referências reais antes de aproveitar o rascunho.