Git
Tutorial: resuelve tu primer conflicto de Git
Aprende a leer y resolver un conflicto de merge en Git sin entrar en pánico.
Un conflicto de merge pasa cuando Git no sabe cuál de dos cambios quedarte, porque ambos tocaron la misma línea. Suena aterrador la primera vez. No lo es. Vamos a provocar uno a propósito para perderle el miedo.
Paso 1: crea el escenario del conflicto
echo "Versión original" > archivo.txt
git add archivo.txt
git commit -m "Versión original"
git checkout -b rama-a
echo "Cambio desde rama A" > archivo.txt
git commit -am "Cambio en rama A"
git checkout main
echo "Cambio desde main" > archivo.txt
git commit -am "Cambio en main"
Ahora tienes dos versiones distintas de la misma línea, en dos ramas distintas. Es hora de mezclarlas.
Paso 2: intenta el merge
git merge rama-a
Git te va a mostrar algo como CONFLICT (content): Merge conflict in archivo.txt. No es un error fatal, es Git diciéndote "necesito que decidas tú".
Paso 3: abre el archivo y decide
<<<<<<< HEAD
Cambio desde main
=======
Cambio desde rama A
>>>>>>> rama-a
Todo lo que está entre <<<<<<< HEAD y ======= es tu versión actual. Todo entre ======= y >>>>>>> rama-a es la versión que intentabas mezclar. Edita el archivo a mano, deja el contenido que quieras conservar, y borra esas líneas de marcado (<<<<<<<, =======, >>>>>>>).
Paso 4: marca el conflicto como resuelto
git add archivo.txt
git commit -m "Resuelve conflicto entre main y rama-a"
Al hacer git add sobre el archivo editado, le dices a Git "ya decidí, este es el contenido final". El commit cierra el merge.
¿Qué acabas de aprender?
- Por qué ocurre un conflicto de merge (dos cambios en la misma línea).
- Cómo leer los marcadores
<<<<<<<,=======y>>>>>>>. - Que resolver un conflicto es solo editar el archivo y volver a hacer commit, nada mágico ni aterrador.