merging - MutakamwoyoCloud/MCloud GitHub Wiki
Identificando las partes del merge
Al hacer git pull o mergear directamente pueden surgir conflictos, esto pasa cuando hay otra persona que ha estado trabajando en el mismo fichero que tu y además ha escrito código sobre las mismas lineas.
Git al mezclar el trabajo de los dos y encontrar este problema se encontrará con un conflicto y te pedirá que lo resuelvas antes de seguir trabajando y commitees esa resolución.
Lo que ha pasado es que Git ha escrito sobre esos ficheros con conflictos para indicar donde ha estado el problema:
En esta parte van las lineas irrelevantes, ya sea porque han permanecido intactas o solo uno de los programadores las ha cambiado, por lo tanto no hay conflicto.
<<<<<<<<<<<< yours:sample.txt Tu commit, normalmente apuntará a HEAD
Esta es la parte de **TU** código que ha creado los conflictos
aparecen entre la línea que empieza por < y la siguiente que empieza por =
============
Esta es la otra parte del código que crea conflicto
esta parte es la que ha generado conflicto **de la otra persona**
>>>>>>>>>>>> theirs:sample.txt El commit de la otra persona, apuntara a su commit id.
Por aquí todo esta correcto!
Como se puede comprobar las zonas conflictivas se delomitan con <<<<<<<<, ====== y >>>>>> Lo que esta antes de ======== est tu parte, lo que esta despues es la parte de la otra persona.
Resolviendo el merge
Una vez sabes cual es el conflicto existen varias opciones:
- No te atreves a mergear, abres git bash y escribres $git merge --abort
- Manualmente y la mas facil:
- Simplemente sabiendo donde esta el conflicto borras las marcas de git a mano y mezclas tu las lineas que quieras.
- Despues añades el fichero modificado (git add) y commiteas la resolución del merge
- Usando git mergetool que es una herramienta gráfica que te abre una ventana con los 3 ficheros generados (el tuyo, el suyo y el merge).