💥 Cómo resolver conflictos en Git paso a paso (sin volverte loco)



https://code.visualstudio.com/assets/docs/sourcecontrol/overview/merge-editor-overview.png


Si estás trabajando con Git en serio, tarde o temprano vas a ver esto:

CONFLICT (content): Merge conflict in archivo.js

Y en ese momento… 😅

❗ “¿Qué rompí y cómo lo arreglo?”

Tranquilo. Los conflictos en Git no son un error grave.

Son simplemente una señal de que Git necesita tu ayuda para decidir qué versión conservar.

En esta guía aprenderás:

  • qué es un conflicto en Git
  • por qué ocurre
  • cómo resolverlo paso a paso
  • cómo evitarlo
  • buenas prácticas reales


🧠 Qué es un conflicto en Git


Un conflicto ocurre cuando:

dos cambios afectan la misma parte de un archivo y Git no sabe cuál elegir


📌 Ejemplo sencillo


Tienes este código:

console.log("Hola mundo");

Rama A cambia esto:

console.log("Hola usuario");

Rama B cambia esto:

console.log("Hola admin");

👉 Git no puede decidir automáticamente.



⚠️ Cuándo ocurren conflictos


Los casos más comunes:

  • hacer git merge
  • hacer git rebase
  • hacer git pull


🔍 Cómo se ve un conflicto


Git marca el conflicto dentro del archivo:

<<<<<<< HEAD
console.log("Hola usuario");
=======
console.log("Hola admin");
>>>>>>> feature


🧠 Qué significa esto


  • <<<<<<< HEAD → tu versión
  • ======= → separador
  • >>>>>>> feature → versión de la otra rama


🧪 Resolver un conflicto paso a paso


1️⃣ Abrir el archivo

nano archivo.js


2️⃣ Analizar el conflicto

Decide:

  • qué código dejar
  • o combinar ambos


3️⃣ Editar el archivo

Ejemplo final:

console.log("Hola usuario y admin");


4️⃣ Eliminar marcas

Debes borrar:

<<<<<<<
=======
>>>>>>>


5️⃣ Añadir cambios

git add archivo.js


6️⃣ Finalizar operación

Si es merge:

git commit

Si es rebase:

git rebase --continue


🔄 Ejemplo completo

git checkout main
git merge feature
# conflicto aparece
nano archivo.js
git add archivo.js
git commit


🧠 Conflictos en rebase

En rebase se resuelven uno por uno.

git rebase main

Luego:

git add archivo.js
git rebase --continue


❌ Cancelar operación

Cancelar merge

git merge --abort

Cancelar rebase

git rebase --abort


🧠 Herramientas para resolver conflictos


Puedes usar:

  • VS Code
  • GitKraken
  • herramientas visuales

Estas muestran botones como:

  • Accept Current
  • Accept Incoming
  • Accept Both


⚠️ Errores comunes


❌ No eliminar marcas

El código quedará roto



❌ Hacer commit sin revisar

Puede romper la app



❌ Usar rebase sin entender conflictos


❌ Forzar push después de conflicto mal resuelto


🧠 Buenas prácticas


✔️ Haz pull antes de trabajar

✔️ Trabaja con ramas

✔️ Haz commits pequeños

✔️ Comunícate con tu equipo

✔️ Evita editar lo mismo simultáneamente


🧪 Estrategia para evitar conflictos


  • dividir tareas
  • usar ramas pequeñas
  • hacer merge frecuente


🧠 Concepto clave


Git no se equivoca
👉 Solo necesita que tú decidas


📌 Resumen rápido


conflicto → editar → git add → commit / continue






🧠 Conclusión:


Los conflictos en Git son parte del trabajo real.

Dominar esto significa:

  • trabajar mejor en equipo
  • evitar errores
  • tener control total del código

Y lo mejor:

Una vez que los entiendes, dejan de dar miedo 😄


Volver al post Pilar: