DEV Community

Cover image for Resuelve tu primer conflicto de Git entendiendo el cambio, con ayuda de GitKraken
Jesus Manuel Garcia Torres
Jesus Manuel Garcia Torres

Posted on

Resuelve tu primer conflicto de Git entendiendo el cambio, con ayuda de GitKraken

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"
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)