Git · Sección 8

Ramas, integración y conflictos

Crear ramas pequeñas, comprender fast-forward y merge commits, resolver conflictos reconstruyendo la intención y comprobar antes de eliminar.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Conviene haber comprendido Deshacer y recuperar sin pánico.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Ramas y HEAD con Merge y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Instala Git y utiliza Git Bash, PowerShell o una terminal Unix. Mantén un repositorio desechable para probar recuperación y conflictos.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Ramas y HEAD y Merge? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Usarás ramas como referencias ligeras, integrarás cambios y resolverás conflictos desde la intención, no desde los marcadores.

Al terminar podrás
  • Una rama permite avanzar desde un commit conocido
  • Fast-forward y merge commit describen grafos distintos
  • Los marcadores muestran alternativas; tú reconstruyes el resultado correcto
01
Aislar trabajo

Una rama permite avanzar desde un commit conocido

git switch -c crea una rama y mueve HEAD hacia ella. Los nuevos commits hacen avanzar esa referencia. Las ramas pequeñas, con objetivo claro y vida breve, reducen la distancia que debe reconciliarse al integrar.

01

Confirma la rama actual antes de commit.

02

Actualiza la base con una estrategia acordada.

03

No elimines la rama hasta comprobar la integración.

Comprueba lo aprendido · 01

¿Crear una rama duplica físicamente todos los archivos e historial?

Mostrar respuesta +

No. La rama es una referencia ligera a un commit; el directorio de trabajo cambia al extraer el contenido correspondiente.

02
Integrar historias

Fast-forward y merge commit describen grafos distintos

Si main no avanzó, puede adelantar su referencia hasta la rama. Si ambas líneas tienen commits propios, merge crea normalmente un commit con dos antecedentes. La estrategia del equipo debe equilibrar contexto, revisión y legibilidad.

01

Actualiza y prueba la rama antes de integrar.

02

Revisa el diff contra la base correcta.

03

La ausencia de conflicto textual no garantiza corrección.

Comprueba lo aprendido · 02

¿Un merge automático demuestra que el programa sigue funcionando?

Mostrar respuesta +

No. Solo indica que Git pudo combinar el texto. Los cambios pueden ser incompatibles a nivel de comportamiento y deben probarse.

03
Resolver conflictos

Los marcadores muestran alternativas; tú reconstruyes el resultado correcto

Un conflicto aparece cuando Git no puede decidir cómo combinar. Status identifica rutas; los marcadores separan versiones. La resolución debe comprender ambas intenciones, producir un archivo final válido, prepararlo y continuar o abortar limpiamente.

01

No conserves marcadores en el archivo final.

02

Prueba el comportamiento combinado.

03

Usa --abort si necesitas volver al estado previo a la integración.

Comprueba lo aprendido · 03

¿Resolver un conflicto consiste en elegir siempre current o incoming?

Mostrar respuesta +

No. A veces el resultado correcto combina, reorganiza o reemplaza ambos lados. La fuente de verdad es la intención y las pruebas.

Resumen de la sección

Tu recorrido en tres ideas

  1. Una rama permite avanzar desde un commit conocido
  2. Fast-forward y merge commit describen grafos distintos
  3. Los marcadores muestran alternativas; tú reconstruyes el resultado correcto
PROFUNDIZACIÓN / LABORATORIO GUIADO

Provoca y resuelve un conflicto controlado

Integra ramas ligeras, grafo, conflicto textual, intención y prueba del resultado.

CASO

Dos ramas cambian la misma regla de validación: una mejora el mensaje y la otra agrega un caso obligatorio.

Procedimiento

  1. Crea ambas ramas desde la misma base y registra una intención por commit.
  2. Integra para producir el conflicto y estudia base, ours y theirs.
  3. Escribe una tercera versión que cumpla ambos requisitos, prueba y completa el merge.

Evidencia mínima

  • Grafo antes y después.
  • Archivo final sin marcadores.
  • Prueba que cubre los dos requisitos.
Mostrar razonamiento modelo +

Elegir un lado perdería parte de la intención. La resolución combina la nueva regla con el mensaje mejorado y queda comprobada por un caso anterior y uno nuevo.

Para ir más lejos

¿Qué cambio en la organización de archivos habría reducido la probabilidad del conflicto?

CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Resolver un conflicto eligiendo un lado sin comprender la intención.

ERROR 02

Eliminar la rama antes de comprobar que quedó integrada.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Crea dos ramas que cambien la misma línea, provoca un conflicto, resuélvelo y verifica el resultado combinado.

Mostrar pauta de corrección +
Una respuesta sólida:
  • Conserva una historia legible.
  • El archivo final no contiene marcadores.
  • Incluye una prueba posterior al merge.