Forzare Git a scegliere sempre la versione più recente durante un'unione?


103

Supponiamo che io mergegit e ci sia un conflitto di unione.

La mia domanda è: come posso forzare git a scegliere sempre la versione più recente del codice in conflitto in modo da non dover risolvere il conflitto manualmente?



ma voglio fare un'unione (non sovrascrivere i commit), ma in aggiunta per risolvere automaticamente i conflitti.
bartek

Risposte:


188

Non è esattamente la versione "più recente", ma puoi dire a git di preferire sempre la versione sul ramo corrente usando git merge branch -X ours, o di preferire la versione del ramo che viene unito, usando git merge branch -X theirs.

Da man git-merge:

nostro:

Questa opzione costringe gli hunk in conflitto a essere risolti automaticamente in modo pulito favorendo la nostra versione. Le modifiche dall'altro albero che non sono in conflitto con il nostro lato si riflettono nel risultato dell'unione. Per un file binario, l'intero contenuto viene preso dalla nostra parte.

il loro:

Questo è l'opposto del "nostro".


9
ours- theirs!! Dillo e capisci cosa fa il comando! Amo Git! : D
Haywire

14
nota: se lo hai già utilizzato git merge branch, dovrai farlo git merge --abortprima di poterlo fare.
John Dvorak

1
Non funziona per me. Annulla ancora l'unione. error: The following untracked working tree files would be overwritten by merge:Non so nemmeno perché questi file siano in questo ramo in primo luogo, ma dovrebbero essere sovrascritti e git rifiuta.
mcv

2
Se non sono tracciati, devi prima rimuoverli (o git add). Leggi un po ' git clean, potrebbe aiutarti in questo.
Renato Zannon

Dopo l'esecuzione git merge ours, se ci sono alcuni file in conflitto, ci sarà un registro? e potrei monitorare il di git merge ours?
zx1986

19

Io uso questo

git fetch --prune
git reset --hard origin/master

2
Questa soluzione mi ha aiutato a risolvere i conflitti non uniti quando tutto ciò che volevo era sovrascrivere con il ramo principale. ho usato git reset --hard master (dal locale)
Juan Mendez
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.