Tips de resolución de conflictos git

Por
Contexto: Un conflicto en git consiste en dos versiones de un fragmento de un archivo: una versión viene de la rama desde la que estás mezclando, y otra es la versión de ese mismo fragmento en la rama hacia la que estás mezclando. Resolverlo usualmente consiste en decidirte por una de las dos partes pero teniendo en cuenta algo de la otra parte. El tip en este post es para cuando sabes que siempre quieres una de las dos versiones consistentemente.

Git en Visual Code

Al resolver conflictos de merge o rebase en git, si estamos seguros que queremos resolver los casos de conflicto siempre para el mismo lado (es decir queremos que la versión de uno de los branches se privilegie por sobre la del otro branch) podemos usar uno de los dos comandos siguientes:

git checkout --ours [path/]


git checkout --theirs [path/]

Es decir, al momento que un merge o rebase se detiene con conflictos, ejecutamos uno de estos comandos pasándole el path a los archivos a los que queremos se les aplique esta regla (o ningún path si estamos seguros que queremos se aplique a todos los conflictos). Luego git add y seguimos con el merge o rebase como haríamos habitualmente.

Pero ojo con esto: debes escoger entre utilizar --ours o --theirs dependiendo de cual lado de los conflictos quieres privilegiar. Sin embargo, al principio me resultó bastante contra-intuitivo saber cuál de los dos utilizar. Hasta que StackOverflow vino al rescate con esta respuesta que lo aclara todo.


---

Escrito por: Ernesto García

Lo más reciente en Blog