0Pricing
DevOps Bootcamp · Lección

Resolución manual de conflictos de merge

Aprenda a identificar y resolver manualmente los conflictos de merge que surgen al integrar ramas divergentes.

Resolución manual de conflictos de merge es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

Comprender los conflictos de fusión

¡Le damos la bienvenida al mundo de los conflictos de fusión! No se preocupe: son una parte normal de la colaboración con Git. Un conflicto de fusión ocurre cuando Git no puede determinar automáticamente cómo combinar los cambios de dos ramas diferentes.

Esto suele ocurrir cuando dos ramas modifican las mismas líneas del mismo archivo de maneras diferentes, o cuando una rama elimina un archivo que otra rama ha modificado.

Por qué surgen los conflictos

Git es increíblemente eficaz al fusionar la mayoría de los cambios de forma automática. Sin embargo, necesita ayuda humana cuando se enfrenta a una situación ambigua. Estos son algunos casos habituales:

  • La misma línea, cambios diferentes: dos personas editan de forma distinta exactamente la misma línea de código.
  • Una rama elimina y otra modifica: una rama elimina un archivo mientras otra lo modifica.
  • Renombrar frente a modificar: un archivo se renombra en una rama y se modifica en otra.

Detectar conflictos con Git

Cuando se produce un conflicto de fusión, Git no completará la fusión automáticamente. En su lugar, pausará el proceso y le indicará qué archivos tienen conflictos. Verá un mensaje similar a este:

Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.

Usar `git status` para detectar conflictos

Después de que falle una fusión automática, su repositorio se encontrará en estado de «fusión». Puede utilizar git status para ver qué archivos tienen conflictos. Estos archivos aparecerán en la lista como «rutas sin fusionar».

git status

Descifrar los marcadores de conflicto

Git inserta marcadores especiales directamente en los archivos en conflicto para mostrar dónde está el problema. Estos marcadores le ayudan a identificar las diferentes versiones del código:

  • <<<<<<< HEAD: marca el inicio de los cambios de su rama actual.
  • =======: separa los cambios de las dos ramas.
  • >>>>>>> branch-name: marca el final de los cambios de la rama entrante.

Dentro de un archivo en conflicto

Veamos un ejemplo. Imagine que tiene un archivo hello.txt. Su rama main lo cambió a «Hello from main», y una rama feature cambió la misma línea a «Greetings from feature». Al fusionar feature con main, el archivo tendrá este aspecto:

<<<<<<< HEAD
Hello from main
=======
Greetings from feature
>>>>>>> feature

Resolver el conflicto manualmente

Su tarea consiste en abrir el archivo en conflicto (por ejemplo, hello.txt) en su editor de texto. Después, debe editar manualmente el archivo para eliminar los marcadores de conflicto y elegir el contenido deseado. Puede combinar partes, escoger una de las versiones o escribir algo completamente nuevo.

En nuestro ejemplo de hello.txt, si quisiéramos conservar ambos mensajes, podríamos editarlo así:

Hello from main and Greetings from feature!

Preparar los cambios resueltos

Una vez que haya editado manualmente el archivo y eliminado todos los marcadores de conflicto, debe indicar a Git que ha resuelto el conflicto. Para ello, prepare el archivo con git add.

Repita este proceso con cada archivo que git status muestre como «ruta sin fusionar».

git add hello.txt

Completar la confirmación de fusión

Una vez preparados todos los archivos en conflicto, la fusión está lista para confirmarse. Normalmente, Git proporcionará un mensaje de confirmación de fusión predeterminado, que puede aceptar o modificar. Esta confirmación final completa el proceso de fusión.

git commit -m "Merged feature branch, resolved conflict in hello.txt"

Comprobación de resolución de conflictos

Ha resuelto correctamente un conflicto de fusión. Ahora, comprobemos si comprende el siguiente paso fundamental después de editar manualmente un archivo en conflicto.

Resumen: Resolución manual de conflictos

¡Ha aprendido a resolver conflictos de fusión manualmente! Es una habilidad fundamental para cualquier desarrollador.

  • Los conflictos ocurren cuando Git no puede fusionar los cambios automáticamente.
  • git status muestra los archivos sin fusionar.
  • Los marcadores de conflicto (<<<<<<<, =======, >>>>>>>) muestran el código divergente.
  • Edite los archivos manualmente, elimine los marcadores y elija el contenido final.
  • Prepare los archivos resueltos con git add.
  • Complete la fusión con git commit.

¡La práctica hace al maestro! Los conflictos pueden parecer intimidantes al principio, pero con estos pasos logrará dominarlos.

Preguntas frecuentes

¿La lección «Resolución manual de conflictos de merge» es gratis?

Sí — el texto completo de «Resolución manual de conflictos de merge» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «Resolución manual de conflictos de merge»?

Aprenda a identificar y resolver manualmente los conflictos de merge que surgen al integrar ramas divergentes. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Resolución manual de conflictos de merge»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Resolución manual de conflictos de merge
  2. Rebase interactivo para el historial
  3. Cherry-picking de commits
  4. Reutilización de resoluciones de conflictos con Git Rerere
← Volver a DevOps Bootcamp