2011-12-13 4 views
12

Dato un file in conflitto foo.txt, come dire a git diff di mostrare le modifiche tra la versione di base del file e la "loro" versione del file?Git confronta la versione "base" con la versione "loro" di un file in conflitto?

Posso vedere ognuna delle versioni tramite git show :1:foo.txt o git show:3:foo.txt - esiste un modo semplice per confrontare le due versioni?

+1

Questo link mostra come visualizzare la patch che non è riuscita: http://stackoverflow.com/questions/2118364/how-to-identify-conflict-commit-by-hash-during-git-rebase --ie, spiega come vedere la patch "loro". – Eddified

risposta

14

git diff :1:foo.txt :3:foo.txt

+0

git deve aver introdotto questa sintassi da qualche parte tra oggi e l'ora in cui ho posto la domanda, grazie per la buona notizia :) –

+0

Questa sintassi è disponibile da molti anni. Giusto per essere sicuro di averlo provato in una versione piuttosto antica (1.5.5) da aprile 2008 e sicuramente funziona. :) – jsageryd

+0

Giuro che ci ho provato, quindi o ho fatto qualche errore di battitura o era rotto in una versione particolare. Immagino che non lo saprò mai :) –

1

Basta digitare git diff e mostrerà solo i conflitti.

Ulteriori approfondimenti: Advanced Merging

Nota le --base e --theirs argomenti per diff

+0

Voglio solo vedere le "loro" modifiche. Quando i blocchi sono grandi, è piuttosto difficile dedurlo dall'output di 'git diff' da solo. –

+0

Se vuoi dire che è difficile vedere che potresti voler usare 'git difftool' e quindi selezionare la tua preferita, ad esempio la fusione. –

+0

Grazie, so questo (e anche l'opzione stile conflitto diff3). Sto solo cercando un modo rapido per vedere le "loro" modifiche su un file. –