¿Qué son los conflictos en Git y cómo solucionarlos?

Autor: | Última modificación: 24 de febrero de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

Es común encontrar que en tu camino como desarrollador, implementes herramientas de control de versiones como Git, pero debido a los múltiples ajustes que puede hacer cualquier compañero de tu equipo desde el servidor, tu proyecto comience a producir conflictos. En este post te explicaremos qué son estos conflictos en Git y cómo podrás solucionarlos.

¿Qué son los conflictos en Git?

Suele suceder que los sistemas de control de versiones trabajan con la gestión de contribuciones entre múltiples autores distribuidos en servidores de sistemas de control de versiones. A veces, varios desarrolladores pueden intentar editar el mismo contenido. Si el desarrollador A intenta editar el código que el desarrollador B está editando, puede producir un conflicto. Para disminuir la aparición de conflictos, los desarrolladores trabajarán en ramas separadas y aisladas . El comando git merge tiene como responsabilidad principal combinar ramas separadas y resolver cualquier edición en conflicto.

Los conflictos usualmente se crean cuando dos desarrolladores han cambiado las mismas líneas en un archivo, o si un desarrollador eliminó un archivo mientras otro lo estaba modificando. En estos casos, Git no puede determinar automáticamente qué es correcto.

Los conflictos solo afectan al desarrollador que realiza la fusión o unión de versiones, el resto del equipo no está al tanto del conflicto. Por lo tanto, Git marcará el archivo como en conflicto y detendrá el proceso de fusión. Entonces es responsabilidad de los desarrolladores resolver el conflicto.

Tipos de conflictos en Git

Una fusión puede entrar en un estado de conflicto en dos puntos separados. Al iniciar y durante un proceso de fusión. A continuación te diremos cómo abordar cada uno de estos escenarios de conflictos en Git:

Git no puede iniciar la fusión

Una fusión no podrá iniciarse cuando Git vea que hay cambios en el directorio de trabajo o en el área de preparación de tu proyecto actual. Como tal, Git no puede iniciar la fusión porque estos cambios pendientes podrían ser sobrescritos por las confirmaciones que estas fusionando. Cuando esto sucede, no se debe a conflictos con otros desarrolladores, sino a conflictos con cambios locales que tengas pendientes. El estado local deberá estabilizarse con git stash, git checkout. Una falla de combinación al inicio generará el siguiente mensaje de error: git commit git reset.

Git falla durante la fusión

Una falla durante una fusión indica un conflicto entre la rama local actual y la rama que estas fusionando. Esto indica un conflicto con el código de otro desarrollador. Git hará todo lo posible para fusionar los archivos, pero dejará las cosas para que las resuelva manualmente en los archivos en conflicto.

Resolver conflictos de fusión usando la línea de comando

La forma más directa de resolver un conflicto de combinación es editar el archivo en conflicto. Para resolver un clonflicto en Git abre el archivo merge.txt en tu editor de código favorito y elimina todos los divisores de conflicto. Una vez que se haya editado el archivo, utiliza git add merge.txt para organizar el nuevo contenido fusionado. Para finalizar la fusión, crea una nueva confirmación ejecutando: git commit -m «merged and resolved the conflict in merge.txt»

Git verá que el conflicto se ha resuelto y crea una nueva confirmación de fusión para finalizar la fusión, de esta forma resolverás por completo cualquier conflicto en Git.

¿Cómo aprender más de Git?

Si después de conocer qué es un conflicto en Git y cómo solucionarlo, te sigue interesando este tema y quieres seguir aprendiendo, con nuestro Bootcamp en Desarrollo Web Full Stack podrás dominar esta y otras herramientas y tecnologías como JavaScript, React, Microservicios y hasta despliegue de servidores en menos de 7 meses. ¡Apúntate ahora!

👉 Descubre más del Desarrollo Web Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]