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


103

Supongamos que mergegit 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?



pero quiero hacer una fusión (no anular las confirmaciones), pero además para resolver los conflictos automáticamente.
bartek

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


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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.