2012-11-07 20 views
19

per la fusione Io lo uso per "mantenere la mia"git merge, mantenere sia

git merge -X ours foo 

e questo per "mantenere il loro"

git merge -X theirs foo 

Tuttavia il mio ultimo merge sembra meglio per mantenere sia i lati. Git ha una "strategia" per questo, per evitare di modificare manualmente il file?

+0

accettare la risposta, se è utile a voi – tinybyte

risposta

12

Non esiste una "strategia di unione" per risolvere questi conflitti.

Tuttavia, se si vuole veramente un conflitto simile:

<<<< ours 
Foo 
========= 
Bar 
>>>> theirs 

per risolvere al

Foo 
Bar 

allora si può configurare il 'unire conducente'. Dalla pagina gitattributes man:

unione

Run livello di file a 3 vie di unione per i file di testo, ma prendere le linee da entrambe le versioni, invece di lasciare marcatori di conflitto. Questo tende a lasciare le righe aggiunte nel file risultante in ordine casuale e l'utente dovrebbe verificare il risultato. Non usare questo se non lo hai capirne le implicazioni.

aggiungere una riga al .gitattributes utilizzare questo:

*.whatever merge=union 
+6

Unione non mappare a "mantenere entrambi". Union è "keep both" meno l'intersezione. Ciò fallirà in modo orribile quando si cerca di "mantenere entrambi" su file di risorse XML come. –

+0

Nel caso in cui 2 hunk in conflitto siano in conflitto, sembrano essere mantenuti entrambi, completamente. – max630

+0

[Here] (http://pastebin.com/LrnAEMLs) è una breve demo – max630