Soy ambassador de GitKraken. Esta práctica usa un conflicto intencional para mostrar cómo interpretar e integrar dos cambios.
Un conflicto aparece cuando Git necesita que una persona decida el resultado de una integración. Dos cambios pueden ser válidos por separado y aun así requerir una decisión conjunta.
Vamos a modificar la misma línea desde dos ramas. Después construiremos un resultado que conserve ambas intenciones: ampliar el horario y aclarar la zona horaria.
Antes de empezar
Necesitas Git, GitKraken Desktop y un editor. Usa una carpeta nueva y Bash, Zsh o Git Bash. Todo el ejercicio es local.
1. Crea una versión inicial
mkdir taller-git-conflictos
cd taller-git-conflictos
git init -b main
git config user.name "Demo Git"
git config user.email "demo@example.com"
printf 'Horario: 09:00 a 18:00\n' > horario.txt
git add horario.txt
git commit -m "docs: registrar horario inicial"
Abre el repositorio en GitKraken. Este commit será el ancestro común de las dos versiones.
2. Amplía el horario en una rama
git switch -c docs/horario-ampliado
printf 'Horario: 08:00 a 20:00\n' > horario.txt
git add horario.txt
git commit -m "docs: ampliar horario de atención"
La intención es atender durante más horas. Todavía no hemos cambiado main.
3. Aclara la zona horaria en main
git switch main
printf 'Horario: 09:00 a 18:00, hora de Ciudad de México\n' > horario.txt
git add horario.txt
git commit -m "docs: aclarar zona horaria"
En el gráfico verás que las ramas divergieron: cada una tiene un commit que la otra no contiene.
4. Inicia la integración
Con main activa en GitKraken, haz clic derecho sobre docs/horario-ampliado y selecciona la opción de merge hacia la rama actual. Confirma que el destino sea main. El flujo oficial de merge describe este procedimiento.
También puedes iniciar la misma operación desde la terminal, pero ejecuta solo una de las dos alternativas:
git merge docs/horario-ampliado
El conflicto en horario.txt es el resultado esperado.
5. Decide qué debería decir el archivo
Abre el archivo conflictivo. Si usas un editor de texto, encontrarás un bloque parecido a este:
<<<<<<< HEAD
Horario: 09:00 a 18:00, hora de Ciudad de México
=======
Horario: 08:00 a 20:00
>>>>>>> docs/horario-ampliado
En este merge, HEAD representa main, la rama destino. La otra sección corresponde a la rama que estás incorporando.
Elegir cualquiera de las líneas completas perdería una intención. Para este ejercicio, el resultado acordado es:
Horario: 08:00 a 20:00, hora de Ciudad de México
Reemplaza todo el bloque por esa línea y guarda. GitKraken ofrece herramientas visuales para conflictos; su editor de salida integrado requiere una licencia de pago según la documentación. También puedes editar el archivo con tu editor habitual, como acabamos de hacer.
6. Marca la resolución y concluye
git add horario.txt
git diff --cached
git commit -m "merge: unificar horario ampliado y zona horaria"
git status
git log --oneline --graph --all
Antes del commit, confirma que el diff contiene la frase final y ningún marcador. Al terminar, espera un directorio limpio y un commit de merge con dos padres.
Resolver también implica validar
En este archivo basta leer la oración final. En código, una integración puede quedar sin marcadores y seguir siendo incorrecta: ejecuta las pruebas correspondientes y revisa el comportamiento afectado.
Si necesitas cancelar antes de concluir este laboratorio, puedes usar git merge --abort. El ejercicio comenzó la integración con el directorio limpio.
Reto: repite la práctica con dos precios diferentes. Esta vez, explica qué información de negocio necesitas antes de escoger un valor.
¿Qué conflicto te ha exigido hablar con otra persona para entender la intención del cambio?

Top comments (0)