Compara el avance rápido
Si main es ancestro de feature, merge mueve main al nodo existente. Solo el caso divergente añade un commit con dos padres.
Git & Version Control
Elige un caso y previsualiza el cambio de historial sin ejecutar Git.
A–D y las primas son identificadores didácticos, no hashes Git.
Elige un ejemplo y una operación para ver aquí el resultado.
Solo se procesa el grafo didáctico fijo en este navegador; no se lee ni contacta ningún repositorio.
Rama destino: main · Rama origen: feature
Ctrl/Cmd + Enter previsualiza la operación elegida.
Elige una operación para ver su resultado.
El grafo modela archivos fijos de una línea, no la estrategia de merge de tu repositorio.
Un simulador Git ayuda a entender qué puntero cambia cuando main y feature se separan de un ancestro común. El grafo de commits del ejemplo permite comparar las tres operaciones sin pegar datos de un repositorio real.
Cambia al caso de avance rápido o al conflicto donde ambos lados modifican la misma línea. A, B, C y D son nombres didácticos, no hashes reales ni garantías sobre tu rama de trabajo.
El simulador Git conserva los nodos originales después de merge y dibuja copias nuevas después de rebase o cherry-pick. Como simulador de ramas Git, muestra también si se mueve main o feature.
El caso preparado compara la línea base de app.js con dos ediciones distintas. Así se entiende el conflicto de merge del ejemplo sin fingir que el grafo pueda inspeccionar los archivos de tu proyecto.
Si main es ancestro de feature, merge mueve main al nodo existente. Solo el caso divergente añade un commit con dos padres.
Rebase vuelve a aplicar C y D como C′ y D′ y mueve feature. Cherry-pick copia solo el C o D elegido a main y mantiene la fuente intacta.
Al cambiar el caso o la operación, el resultado anterior caduca y no se puede copiar ni descargar. Ctrl/Cmd + Enter crea una vista nueva; sustituye los nombres y el hash de ejemplo antes de usar el borrador.
Una unión divergente agrega un nodo con dos padres; el avance rápido mueve el puntero sin crear otro. Esto separa visualmente merge de la idea de “siempre hay commit de unión”.
Rebase reconstruye la secuencia feature sobre main y por ello muestra nodos con prima. Cherry-pick selecciona uno solo; ninguna prima representa un SHA de Git verdadero.
El modelo marca el punto donde el cambio de una línea del ejemplo no encaja. No simula la fusión textual completa ni calcula probabilidades de conflicto para tus archivos.
Merge conserva los commits originales de las dos ramas y puede crear un commit con dos padres; rebase reaplica los commits feature sobre una base nueva. El simulador Git enseña ambas formas sin escoger la política del equipo.
Tras obtener cambios remotos, esa opción reaplica los commits locales sobre la rama actualizada en vez de crear la unión habitual. Esta página muestra solo el rebase de ramas ya incluidas en el ejemplo; no conecta con remotos ni simula pull.
Puede poner commits propios no compartidos sobre una base más reciente y dejar una historia lineal. Como crea nuevos objetos, hay que tener cuidado con ramas ya publicadas. Aquí solo se muestra la topología.
Si ambos lados modifican contenido incompatible desde la base común, Git puede detenerse. El ejemplo de app.js enseña dos valores distintos de una misma línea; no diagnostica la causa concreta de tu repositorio.
Depende del modo de colaboración: merge preserva la bifurcación y rebase reorganiza commits propios. Compara los grafos y acuerda la estrategia con el equipo; el borrador no comprueba si una rama compartida puede reescribirse.
¿El resultado difiere de la documentación de tu dispositivo?
Compara las tres operaciones en un mismo grafo, revisa el conflicto fijo y después verifica cada referencia antes de llevar el borrador a tu repositorio.