2013-05-15 11 views
8

Devo presentare al team le modifiche apportate durante la risoluzione dei conflitti di un'unione.Mostra la parte di conflitto di un'unione

So che è un po 'difficile, ma credo che sia possibile in qualche modo. Ho provato già git show -m e git show -c.

risposta

8

Guardate l'hash (o tag) del merge commit (il commit che ha più i genitori) e fare:

git diff hash hash^1 hash^2 

il risultato sarà un 3 way-diff dei cambiamenti.

hash^ (o hash^1) fa riferimento il genitore prima commettere di hash
hash^2 riferimenti alla seconda genitore commettere di hash

+0

_Inoltre, facendo in modo che 'git diff --cc hash hash^1 hash^2' formatta il diff nello stesso modo in cui' gitk' lo visualizza. Non sono sicuro di quale sia il formato di output preferito da OP, anche se ... _ In realtà, non importa ... 'git diff' lo fa per impostazione predefinita, a quanto pare, quando gli dai tre hash ... – twalberg

+1

grazie! fatto un alias: 'dc ="! f() {HASH = $ 1; shift 1; git d --cc $ HASH $ HASH^1 $ HASH^2 $ @;}; f "' – brauliobo

+0

Quando uso questa linea, Ricevo 'fatale: argomento ambiguo 'hash': revisione sconosciuta o percorso non presente nell'albero di lavoro. Usa '-' per separare i percorsi da revisioni, come questo: git [ ...] - [ ...]> ' – HelloGoodbye

1

Se si utilizza lo strumento standard gitk e si fa clic su un commit di unione, il riquadro in basso a sinistra mostra le risoluzioni dei conflitti.

+0

come gitk fa questo? – brauliobo

+0

@brauliobo assumerei facendo 'git diff hash hash^1 hash^2' dove' hash' è l'hash del commit di unione. –