Skip to content

Instantly share code, notes, and snippets.

@khriztianmoreno
Created December 16, 2020 14:18
Show Gist options
  • Save khriztianmoreno/3fd8bca63910c26ae7a9a2b7738a2ee6 to your computer and use it in GitHub Desktop.
Save khriztianmoreno/3fd8bca63910c26ae7a9a2b7738a2ee6 to your computer and use it in GitHub Desktop.
Solucionando conflictos en git

Es posible que se realicen cambios en las dos ramas que generen conflictos a la hora de integrarlas (p.e. si se crea un archivo con el mismo nombre en las dos ramas o si se cambia la misma línea de un archivo). En este caso es necesario solucionar los conflictos a la hora de hacer el git merge.

Por ejemplo, suponiendo que en master se creó un archivo llamado prueba.txt con un texto Hola desde master y en mi-rama se creo otro archivo con el mismo nombre pero el texto Hola desde mi-rama, al hacer el git merge veríamos lo siguiente en la consola:

$ git checkout master
$ git merge mi-rama
Auto-merging prueba.txt
CONFLICT (add/add): Merge conflict in prueba.txt
Automatic merge failed; fix conflicts and then commit the result.

La línea 4 nos dice que existe un conflicto en prueba.txt. Al abrir el archivo veríamos algo así:

<<<<<<< HEAD
Hola desde master
=======
Hola desde mi-rama
>>>>>>> mi-rama

Lo que está entre la línea 1 y 3 es lo que está en master y lo que está entre la línea 3 y 5 es lo que está en mi-rama. Para solucionar el conflicto debemos decidir qué vamos a dejar y qué vamos a eliminar.

Muy importante es siempre elimianar las líneas que definen los límites (las que comienzan con <<<<<<<, ======= y >>>>>>>).

Por ejemplo, asumiendo que queremos dejar las dos frases deberíamos modificar el archivo para que quede de la siguiente forma:

Hola desde master
Hola desde mi-rama

Una vez solucionado el conflicto debemos indicarle a git que ya lo solucionamos utilizando el comando git add y continuar con el merge.

git add prueba.txt
git commit -m 'Merge branch "mi-rama"'

Si omites el mensaje se abrirá el editor de texto por defecto para que lo ingreses.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment