Supongamos que merge
git y hay un conflicto de fusión.
Mi pregunta es: ¿cómo puedo obligar a git a elegir siempre la versión más nueva del código en conflicto para no tener que resolver el conflicto a mano?
Supongamos que merge
git y hay un conflicto de fusión.
Mi pregunta es: ¿cómo puedo obligar a git a elegir siempre la versión más nueva del código en conflicto para no tener que resolver el conflicto a mano?
Respuestas:
No es exactamente la versión "más nueva", pero puedes decirle a git que siempre prefiera la versión en la rama actual usando git merge branch -X ours
, o que prefiera la versión de la rama que se está fusionando, usando git merge branch -X theirs
.
De man git-merge
:
la nuestra:
Esta opción obliga a los trozos en conflicto a que se resuelvan automáticamente de forma limpia al favorecer nuestra versión. Los cambios del otro árbol que no entran en conflicto con nuestro lado se reflejan en el resultado de la fusión. Para un archivo binario, todo el contenido se toma de nuestro lado.
suyo:
Esto es lo contrario de "nuestro".
ours
- theirs
!! ¡Dígalo y comprenderá lo que hace el comando! ¡Amo a Git! : D
git merge branch
, deberá git merge --abort
hacerlo antes de poder hacer esto.
error: The following untracked working tree files would be overwritten by merge:
Ni siquiera sé por qué estos archivos están en esta rama en primer lugar, pero deberían sobrescribirse y git se niega.
git add
primero debe eliminarlos (o ). Lea un poco sobre git clean
, puede ayudarlo con eso.
git merge ours
, si hay algunos archivos de conflicto, ¿habrá algún registro? y podría rastrear el de git merge ours
?
Yo uso esto,
git fetch --prune
git reset --hard origin/master