2013-01-21 15 views
5

Quando si hanno i conflitti di fusione git, in cui appaiono nel file come questo:Come forzare un git merge conflitto

<<<< 
    old 
    old 
==== 
    new 
    new 
>>>> 

Ora, io ho alcune modifiche origin/master ho intenzione di fondersi in mio locale master ramo. Se li unisco normalmente, le nuove righe appariranno nel file, poiché non ci sono conflitti.

Tuttavia, voglio cambiamenti compaia come quelli unire i conflitti di cui sopra, così posso vedere entrambe le vecchie e nuove linee in cui i conflitti sono, circondato da <<<< e >>>>, rivedere ogni cambio manuale ed eliminare roba che dovrebbe andare via.

Come "provocare" un tale conflitto?

Una soluzione alternativa è git diff -U999999 original.txt > review.txt, ma è necessario eliminare un sacco di - e + caratteri all'inizio di ogni riga durante la revisione del file.

+0

che non sarebbe una buona pratica per un progetto che ha tonnellate di file. – uday

+0

Perché non 'git commit -v' quando si sta commettendo, e basta rivedere il diff? – AD7six

risposta

0

prima di impegnarsi, basta fare git diff path/to/file per vedere cosa è cambiato.

È possibile impostare facilmente uno strumento grafico da utilizzare quando si esegue una risoluzione di diff o di conflitto - vedere http://adventuresincoding.com/2010/04/how-to-setup-git-to-use-diffmerge per gli esempi.

Io uso DiffMerge e quando faccio un diff, questo ti permette di rimuovere le tue modifiche individualmente, il che suona come il comportamento che vuoi.