git rereregit mergetool
Invoca una herramienta externa configurada (como vimdiff,
meld o kdiff3) para resolver conflictos de forma
visual en vez de editar los marcadores a mano.
git rerere ¶Las siglas significan reuse recorded resolution. Cuando está
activado (git config rerere.enabled true), Git recuerda cómo
se resolvió un conflicto la primera vez y aplica automáticamente la
misma resolución si el mismo conflicto vuelve a aparecer más
adelante. Es especialmente útil durante rebases largos, donde el
mismo conflicto puede repetirse en cada commit reaplicado.
A diferencia de un merge, donde un conflicto se resuelve una
sola vez, un rebase puede generar conflictos en
cada commit que se reaplica. Al encontrar uno, Git detiene el
proceso; tras resolverlo:
git add archivo-resuelto.txt git rebase --continue
o, para saltar por completo el commit conflictivo:
git rebase --skip
o para cancelar el rebase y volver al estado anterior:
git rebase --abort
Cuando se sabe de antemano que un archivo entero debe quedar como estaba en una de las dos ramas, sin combinar nada:
git checkout --ours archivo.txt # conserva la versión de la rama actual git checkout --theirs archivo.txt # conserva la versión de la rama entrante git add archivo.txt
Conviene notar que durante un rebase el significado de
"ours" y "theirs" se invierte respecto a un merge, porque
internamente un rebase aplica los commits de la rama propia sobre
la otra, tratándola como base.