Solucionar conflictos merge con GIT desde consola

Os voy a contar cómo soluciono yo los conflictos para mergear código  con GIT desde consola. Existen miiiil maneras infinitas. Espero que esta os sirva.

Contexto: He realizado un pull request de la rama ASIST-183 a develop  y he tenido varios conflictos. El error que me muestra: This pull request has conflicts. You must resolve the conflicts before you can merge. Al realizar un pull request, le estamos diciendo a nuestro gestor de git que suba los cambios de la rama ASIST-183 a develop. Nuestro gestor de git al ver que hay conflicto, pide que se solucione. Léase la siguiente documentación para comprender mejor qué hace pull request.

Para solucionar los conflictos una forma es  mergear develop a ASIST-183, resolver los conflictos en la rama ASIST-183 y comitear los cambios para que ya no de error.

¿Cómo realizar los merges y solucionar los conflictos? 

1 – Desde la propia herramienta existe la lógica para indicar los pasos descritos. (no se explica con detalle en este post).

En mi caso utilizaba Netbeans (sí, has oído bien, el horror de Netbeans) así que recomiendo que no utilicéis merges porque lo hacía fatal. Terminaba siempre con error y echaba para atrás todos los cambios (al menos no fastidiaba el código «a veces»).

Con SourceTree herramienta GIT de Atlassian realiza bien los merges, mostrando los conflictos de código. Además se puede modificar el código desde la propia herramienta.

2 – Desde consola (sí que se explica en este post al detalle).

Bueno, bonito y barato.

Hay que realizar los siguientes pasos (obtenidos de la documentación del producto Stash de Atlassian). Stash ha modificado la documentación de resolver los conflictos, no obstante esta solución funciona es la que sigo realizando.

Step 1: Fetch the changes and checkout the source branch.

git fetch
git checkout ASIST-183

Step 2: Merge the target branch and resolve conflicts as appropriate.

git merge -m «Merging changes from develop to ASIST-183» –log –no-ff develop

Tras este paso, desde la herramienta (en mi caso Netbeans) me aparecían los ficheros con las líneas de conflictos listos para solucionar. Los modificaba uno a uno.

Step 3: After the merge conflicts are resolved, commit the changes and push.

git commit
git push origin HEAD

Step 4: Merge the updated pull request.

Una vez subidos los cambios verás que desaparece los conflictos al realizar un pull request.

Comparte, comenta y colabora. Juntos haremos un mundo mejor.