¿Obligar a Git a elegir siempre la versión más nueva durante una fusión?

Respuestas:

188

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".

Renato Zannon
fuente
9
ours- theirs!! ¡Dígalo y comprenderá lo que hace el comando! ¡Amo a Git! : D
Haywire
14
nota: si ya lo ha usado git merge branch, deberá git merge --aborthacerlo antes de poder hacer esto.
John Dvorak
1
No funciona para mi. Todavía aborta la fusión. 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.
mcv
2
Si no tienen seguimiento, git addprimero debe eliminarlos (o ). Lea un poco sobre git clean, puede ayudarlo con eso.
Renato Zannon
Después de ejecutar git merge ours, si hay algunos archivos de conflicto, ¿habrá algún registro? y podría rastrear el de git merge ours?
zx1986
19

Yo uso esto,

git fetch --prune
git reset --hard origin/master
Wolfgang
fuente
2
Esta solución me ayudó a solucionar conflictos no fusionados cuando todo lo que quería era anular con la rama maestra. Usé git reset --hard master (de local)
Juan Mendez