¿Sabes como resolver conflictos en git?
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 en git , 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 en git 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 dar respuesta al problema del git resolve conflicts.
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
cuando hay un conflicto entre archivos lo mejor es editar el archivo en conflicto. Para poder proceder con git resolver conflictos 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!